数据库
1、注释
- –:单行注释(快捷键Ctrl+/)
- /* */:多行注释
2、常用数据类型
3、数据库中的元素
- 数据库------database
- 表-----table label: LOOP statement_list IF exit_condition THEN LEAVE label; END IF; END LOOP label;
- 字段(列)-----filed
- 记录(行)-----record
4、创建表
- 语法:creat table 表名(字段名 字段类型,字段名 字段类型)
创建一个字段:
创建两个字段:
创建三个字段:
5、插入数据
-
语法:insert into 表明 values (值,值,值)
所有字段设置值,值的顺序与表中字段的顺序对应
-
语法:insert into 表明 (字段1,字段2…)values (值1,值2)
部分字段设置值,值的顺序与给定的字段顺序对应,指定字段插入
6、插入多条记录
-
多条insert语句,用分号隔开
-
一条insert插入多条记录
语法:insert into 表明 values (值,值),(值,值),(值,值);
-- 表c插入三条记录,写三条insert语句,语句之间用分号隔开 INSERT into c VALUES (5,'周瑜', 50); INSERT into c (id ,name) VALUES (6,'dff'); INSERT into c (name) VALUES ('周瑜');
-
一条insert,指定字段插入多条记录
语法: insert into 表名 (字段名1,字段名2)values (值1,值2),(值1,值2),(值1,值2);
7、select 简单查询
-
查询所有字段
-
语法: select * from 表名
(1)查询表的所有字段
-- 查询表c的所有字段 select * from c
(2)指定字段名查询
语法:select 字段名, 字段名 from 表名;
-- 查询表c的ID字段 select id from c -- 查询表c的ID和name字段 select id, name from c; -- 查询表c的所有字段,但顺序可以自定义 select name, id, age from c;
8、update 修改数据
- 语法:update 表明 set 字段 = 值,字段 = 值 where 条件
- 如果没有where条件代表修改表中的所有记录
-- 例1、修改表c,所有人的年龄(age 字段)改为50
UPDATE c set age = 50;
- 修改带有条件的update语句
-- 修改表c,id为3的记录,姓名(name 字段)改为‘狄仁杰’,年龄(age 字段)改为 20
UPDATE c set name = '狄仁杰', age = 20 WHERE id = 3;
-
另外的例子
-- 修改name为张飞的记录为李白 UPDATE c set name = '李白' WHERE name = '张飞';
9、delete 删除表中的数据
- 语法:delete from 表名 where 条件
-- 删除表c当中ID为6的记录
DELETE FROM c WHERE id = 6;
10、truncate删除表中的记录
- truncate table 表名; (不能设定条件)
-- 删除表c中的所有数据
truncate table c;
11、delete和truncate的区别
- 在速度上,truncate>delete
- 如果想删除部分数据用delete,要带上where子句
- 如果想保留表而将表中所有数据删除,自增长字段恢复从1开始,用truncate
12、drop table 删除表
- 语法:drop table 表名;
-- 删除表a
DROP TABLE a;
-- 如果表a存在删除表a,如果不存在,不做任何操作
drop TABLE if EXISTS a;
13、字段的约束
- 主键(primary key):值不能重复,auto_increment代表值自动增长;
- 非空(not null):此字段不允许填写空值;
- 唯一(unique):此字段的值不允许 重复;
- 默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准;
(1)创建带约束条件的语法格式
create table 表名(
字段名 数据类型 约束,
字段名 数据类型 约束,
...
);
(2)主键与自增长
- 带有primary key 的字段,值不能重复;
- auto_increment 为自增长;
- 语法
create table 表名(
字段名 数据类型 primary key auto_increment,
字段名 数据类型 约束,
...
);
例子:
-- 创建表d,字段要求如下:
-- ID : 数据类型为int unsigned (无符号整数),primary key ,auto_increment
-- name 姓名:数据类型为varchar(字符串)长度为10;年龄age:数据类型为int;
CREATE TABLE d (
id int UNSIGNED PRIMARY KEY auto_increment,
name VARCHAR (10),
age INT
);
INSERT into d (name , age)VALUES ('张飞',33);
-- 插入指定ID的值
INSERT INTO d (id ,name ,age) VALUES(6,'关羽', 55);
-- 不指定ID的值
INSERT into d (name , age)VALUES ('天司',33);
SELECT * from d;
-- 如果不指定字段,主键自增长字段的可以用占位符,0或null
INSERT into d VALUES (0,'张三',30);
INSERT into d VALUES (null,'李四',26);
SELECT * from d;
(3)非空 not null
- 这个字段必须有值,若没有值则会报错
-- 创建表e,字段要求如下:
-- ID : 数据类型为int unsigned (无符号整数),primary key ,auto_increment
-- name 姓名:数据类型为varchar(字符串)长度为10,not null (非空);年龄age:数据类型为int;
DROP TABLE e;
CREATE TABLE e (
id int UNSIGNED,
name VARCHAR (10) not null,
age int
);
INSERT into e VALUES (1,'wsz',20);
INSERT into e (id , age ) VALUES (1,20);
SELECT * from e;
INSERT into e (id , age ) VALUES (1,20)
> 1364 - Field 'name' doesn't have a default value
> 时间: 0.001s
(4)唯一 unique
- 该字段的值不能重复,出现重复报错;
-- 创建表f,字段要求如下:
-- ID : 数据类型为int (整数),primary key ,
-- nam