Day1

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 表名(

    字段名 字段类型 约束,

    字段名 字段类型 约束,

    ...

);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。