

文章目录
一、数据库介绍
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 值,
…
);



被折叠的 条评论
为什么被折叠?



