1.sql语言中的注释
-- 行注释
/* 注释内容 */
2.mysql的常用数据类型
整数:int。int unsigned,代表设置一个无符号的整数
小整数:tinyint。tinyint unsigned,代表设置一个无符号的整数
小数:decimal。如decimal(5,2)表示共存5位数,小数占2位,不能超过2位;整数占3位,不能超过3位
字符串:varchar。varchar(3)表示最多存3个字符,一个中文和一个字母都占一个字符
日期时间:datetime
整数 int 和 小整数 tinyint 的区别?
1)int占4个字节,tinyint占1个字节,如果存储一个较小的数,用tinyint性能更高一点。
2)什么时候用int,什么时候用tinyint?
tinyint 独立使用时,使用范围是(-128,127)。
tinyint unsigned的使用范围是0到255的整型数据,存储大小为1字节。int unsigned的使用范围是0到4294967295,存储大小为4个字节。tinyint所占的内存小,作用范围也小。
综合考虑,我个人认为,如果数字较小比如用0和1表示性别或者表示年龄时,可以用tinyint。
可是,如果数字可能会超过255,则建议使用int。
3.数据库中的元素
数据库-----database
表-----table
字段(列)-----field
记录(行)-----record
4.创建表
语法:
create table 表名(字段名 字段类型, 字段名 字段类型);
例 1:创建表 a,字段要求:name(姓名),数据类型:varchar(字符串),长度为 10
create table a(name varchar(10));
例 2:创建表 b,字段要求: name(姓名),数据类型为 varchar(字符串),长度为 10;height(身高),数据类型为 decimal(小数),一共 5 位, 其中 3 位整数,2 位 小数。
create table b(
name varchar(10),
height decimal(5, 2)
);
例 3:创建表 c,字段要求如下:id:数据类型为 int (整数);name 姓名:数据类型为 varchar(字符串)长度为 20;age 年龄:数据类型为 tinyint unsigned(无符号小整数)。
create table c(
id int,
name varchar(10),
age tinyint unsigned
);
5.插入数据
语法 :
insert into 表名 values (值, 值, 值);
例 1:往表c插入一条记录
insert into c values (0,'张飞',30);
指定字段插入,语法:
insert into 表名 (字段名, 字段名) values (值, 值);
-- 例 2:表 c 插入一条记录,只设置 id 和姓名 name
insert into c (id, name) values (3, '曹操');
-- 例 3:表 c 插入一条记录,只设置 id 和姓名 age
insert into c (id, sge) values (4, 30);
6.插入多条记录
1>多条insert语句,用分号隔开
2>一条insert插入多条记录,语法:
insert into 表名 values (值,值),(值, 值),(值,值);
3>一条insert指定字段插入多条记录,语法:
insert into 表名 (字段名, 字段名) values (值, 值), (值, 值), (值, 值);
7.select查询表
查询表的所有字段,语法:
select * from 表名;
例1:查询表c的所有字段
select * from c;
指定字段名查询,语法:
select 字段名, 字段名 from 表名;
例1:查询表c的id字段
select id from c;
例2:查询表c的id和age字段,查询顺序可以自定义
select id, age from c;
8.update修改数据
语法:
update 表名 set 字段 = 值, 字段 = 值 where 条件;
如果没有where 条件代表修改表中所有的记录
例 1:修改表 c,所有人的年龄(age 字段)改为 50
update c set age = 50;
例 2:修改表 c,id 为 3 的记录,姓名(name 字段)改为'狄仁杰',年龄(age 字段)改为 20
update c set name = '狄仁杰', age = 20 where id = 3;
例 3:修改name为'刘备'的记录为'李白'
update c set name = '李白' where name = '刘备';
例 4:id大于10的记录,长一岁
update c set age = age + 1 where id > 10;
9.delete删除记录
语法:
delete from 表名 where 条件;
例 1:删除表 c 中 id 为 6 的记录
delete from c where id = 6;
例 2:删除年龄大于50的记录
delete from c where age > 50;
例 3:删除id小于3的记录
delete from c where id < 3;
例 4:删除所有记录
delete from c;
10.truncate table删除表的数据
语法:
truncate table 表名;
例1:删除表c中所有的记录
truncate table c;
truncate 和 delete 的区别?
1.在速度上,truncate > delete
2.如果想删除部分数据用delete,注意带上where子句
3.如果想保留表而将所有数据删除,自增长字段恢复从1开始,用truncate
12.删除表
语法一:
drop table 表名;
例1:删除表a
drop table a;
语法二:
drop table if exists 表名;
例2:如果表a存在,就删除表a,如果不存在,什么也不做
drop table if exists a;
13.字段的约束
常用约束介绍:
主键(primary key):值不能重复,auto_increment代表值自动增长;
- 主键的值不能重复
- 自增长,auto_increment。值会系统自动维护,自动增长
非空(not null):此字段不允许填写空值;
- 这个字段必须有值,如果没有值,insert插入会失败
唯一(unique):此字段的值不允许重复;
- 字段的约束为唯一,表示字段的值不能重复
默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准
- 当一个字段有默认值约束,插入数据时,如果指定了值,那么默认值无效,如果没有指定值,会使用默认值
创建带约束字段的语法格式:
create table 表名(
字段名 字段类型 约束,
字段名 字段类型 约束,
...
);