【MySQL】基础知识Day1

  • 博客主页:小蜗
  • 系列专栏:MySQL
  • 参考教程:菜鸟教程/黑马
  • 关注博主,后期持续更新系列文章
  • 如果有错误请大家批评指出,我会及时修改
  • 感谢大家点赞👍收藏⭐评论✍

在这里插入图片描述
在这里插入图片描述



一、数据库介绍

1、简介

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,后来被

Sun 公司收购,Sun 公司后来又被 Oracle 公司收购,目前属于 Oracle 旗下产品。

MySQL 开源、支持多平台、免费、使用范围广,是了解学习关系型数据库的首选。

2、特点

  • 使用 C 和 C++编写,并使用了多种编译器进行测试,保证源代码的可移植性;
  • 支持多种操作系统,如 Linux、Windows、UNIX 等;
  • 为多种编程语言提供了 API,如 C、C++、Python、Java、Perl、PHP 等;
  • 优化的 SQL 查询算法,有效地提高查询速度;
  • 可以处理拥有上千万条记录的大型数据库;
  • 使用标准的 SQL 数据语言形式。

3、SQL 语言

SQL 是一门特殊的语言, 专门用来操作关系型数据库,当前关系型数据库都支持使用 SQL 语言进行操作, 也就是说可以通过 SQL 语言操作 oracle、mysql、sql server、sqlite 等等所有的关系型数据库。
SQL 语言主要分为:

  • DQL:数据查询语言,用于对数据进行查询,如 select;
  • DL:数据定义语言,进行数据库、表的管理等,如 create、drop;
  • DML:数据操作语言,对数据进行增、删、改,如:insert,update,delete;
  • TPL:事务处理语言,对事务进行处理,包括 begin transaction,commit,rollback;

SQL 语言不区分大小写

二、SQL语言基础

1、SQL 语言中的注释

  • 单行注释

格式:-- 注释内容
注意:-- 与注释文字之间用空格分隔;

  • 多行注释

格式:/注释内容/
/*这是是一个
多行注释的例子
*/

- 在 Navicat 中按 ctrl+/ 快速注释选中的 SQL 代码
- 在 Navicat 中按 ctr+shiftl+/ 选中 SQL 代码取消注释

2、表、字段、记录

  • 表(table):
    表(table),数据库中存储数据的基本单位,表是一个由行和列组成的二维表格结构。
  • 字段(field):
    表中的列,在数据库中,叫做字段(field)。
  • 记录(record):
    表中的一行,在数据库中,叫做记录(record)。

3、CREATE TABLE 创建表

  • 语法

create table 表名(

字段名 数据类型,
字段名 数据类型

… );

  • 例 2:创建表 g,字段要求:name(姓名),数据类型为 varchar(字符串),长度为 10;height(身高),数据类型为decimal(小数),一共 5 位, 其中 3 位整数,2 位 小数。

create table b(

name varchar(10),

height decimal(5,2)

);

4、INSERT 添加数据

  • 添加一条记录(SQL 语句中,字符串用单引号’’或者双引号””引起来,数字可以省略引号。)

格式一:所有字段设置值,值的顺序与表中字段的顺序对应

insert into 表名 values (…);

例 1:表 c 插入一条记录,设置所有字段的信息

insert into c values (0,‘亚瑟’,22);

格式二:部分字段设置值,值的顺序与给出的字段顺序对应

insert into 表名 (字段 1,…) values (值 1,…);

例 2:表 c 插入一条记录,只设置 id 和姓名 name

insert into c (id,name) values (1,‘小蜗’);

  • 添加多条记录

格式一:写多条 insert 语句,语句之间用英文分号隔开

例 3:表 c 插入三条记录,写三条 insert 语句, 语句之间用分号隔开

insert into c (id,name,age) values (2,‘秦始皇’,20);

insert into c (id,name,age) values (3,‘汉武帝’,26);

insert into c values (4,‘唐太宗’,23);

格式二:写一条 insert 语句,添加多条记录,数据之间用英文逗号隔开

insert into 表名 values (…),(…)… ;

例 4:表 c 插入多条记录,用一条 insert 语句, 数据之间用逗号隔开

insert into c values (5,‘宋太祖’,23),(6,‘庄子’,23);

格式三:写一条 insert 语句,设置指定字段值

insert into 表名(字段 1,…) values (值 1,…),(值 1,…)… ;

例 5:表 c 插入多条记录,用一条 insert 语句, 只设置姓名和年龄.

insert into c (name, age) values (‘刘备’,26),(‘张飞’, 35);

5、SELECT 简单查询

  • 查询所有字段

语法:select*from表名

例1:查询表c所有数据

select * from c;

  • 查询指定字段

语法:select 字段1 , 字段2,…from 表名

例2:查询表c的姓名(name字段)和年龄(age字段)

select name, age from c;

6、UPDATE修改数据

语法:update 表名 set 字段1 = 值1, 字段2 = 值2…where 条件;

例1:修改表c,所有人的年龄(age字段)改为50

update c set age = 50;

例2:修改表c,id为2的记录,姓名(name字段)改为‘狄仁杰‘,年龄(age 字段)改为20

update c set name = ‘狄仁杰’, age=20 where id= 2;

7、DELETE删除表中的记录

语法:delete from 表名 where 条件;

例 1:删除表 c 中 id 为 6 的记录

delete from c where id=6;

例 2:删除表 c 的所有记录

delete from c;

8、TRUNCATE 删除表中的记录

语法:(删除表的所有数据,保留表结构)

truncate table 表名;

例:删除表 c 的所有数据

truncate table c;

9、DELETE 和 TRUNCATE 的区别

  • 在速度上,truncate > delete;
  • 如果想删除部分数据用delete,注意带上 where子句;
  • 如果想保留表而将所有数据删除,自增长字段恢复从 1 开始,用truncate;

10、DROP TABLE 删除表

  • 语法1:drop table 表名;

例 1:删除表 a

drop table a;

  • 语法2:drop table if exists 表名;

例 2:删除表 a

drop table if exists a;

三、字段的约束

1、常用约束介绍

  • 主键(primary key):值不能重复,auto_increment 代表值自动增长;
  • 非空(not null):此字段不允许填写空值;
  • 唯一(unique):此字段的值不允许重复;
  • 默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准。

2、创建带约束字段的语法格式

create table 表名(

字段名 数据类型 约束,
字段名 数据类型 约束

… );

3、主键与自增长

  • 带有 primary key(主键)的字段,值不能重复;
  • auto_increment 为自增长;
  • 语法

createtable表名(

字段名 数据类型 primarykey auto_increment,

字段名 数据类型 约束

);

  • 主键并且自增长字段的表,insert语句插入数据,如果不指定id字段,id字段的值会自动增长
  • 如果插入数据时,插入所有字段,但又没写自增长字段的值,insert语句会出错:
    解决方法:使用占位符,通常使用0或者null(空)来占位。

4、非空

  • 带有notnull(非空)的字段,值不能为空;
  • 语法:

create table 表名(

字段名 数据类型 not null,

);

  • 非空字段表,insert 插入数据一定要指定字段值,不然插入会失败

5、唯一

  • 唯一(unique):此字段的值不允许重复;
  • 语法:

create table 表名(

字段名 数据类型 unique,

);

6、默认值

  • 默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准;
  • 语法:

create table 表名(

字段名 数据类型 default 值,

);


在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值