mysql 数据库的基本操作语法
推荐数据库关键字段全大写,自定义名小写。
创建数据库 CREATE DATABASE mmp;
创建数据库表则不能为空白字段,最少需要有一个字段
USE mmp; 选择要使用的数据库
CREATE TABLE info (
id TINYINT PRIMARRY KEY auto_increment, //id是字段 为主键 且 自增量
name VARCHAR(25), // 变长字符串
age TINYINT, // 短整型
phone CHAR(11) //定长字符串
);
Boolean-------------> 相当于 TINYINT(1)
查看表结构 DESC info;
增加字段: ALTER TABLE info ADD phone CHAR(11), ADD address VARCHAR(50);
删除字段: ALTER TABLE info DROP address;
修改字段类型: ALTER TABLE info MODIFY age TINYINT AFTER name;
修改字段名: ALTER TABLE info CHANGE address addr VARCHAR(40);
修改表名: RENAME TABLE info TO infomation;
删除表: DROP TABLE info; 记录会一行一行被删除
TRUNCATE TABLE info; 会直接删除表,并按原表结构字段生成一张新空表
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>表数据操作:
添加表数据: INSERT INTO info (name,salary,depart)VALUES ("kevin",15000,"研发部");
INSERT INTO info SET name="Kevin",age=23;
删除表数据:DELETE FROM info WHERE id=7 OR id=8;
修改表数据:UPDATE info SET id=6 WHERE name="lucy";
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>表间关系
主外键关联:
主键 PRIMARY KEY
外键 FOREIGN KEY
外键是相对主表主键而言的,有外键存在的表是主表的字表;
主外键关联必须满足主外键数据类型一致
添加外键: ALTER TABLE xiaodi ADD CONSTRAINT abc FOREIGN KEY(boss_id) REFERENCES boss(id);
abc-------------->外键名 boss_id——>字表的字段属性 id--------->主表的主键
删除外键: ALTER TABLE xiaodi DROP FOREIGN KEY abc;
级联操作:删除主表的主键,子表的外键所对应数据自动删除 ON DELETE CASCADE
1 CREATE DATABASE around; -- 创建数据库
2
3 CREATE TABLE around.boss -- 创建数据库表 boss
4 (id TINYINT PRIMARY KEY auto_increment,
5 name VARCHAR(30),
6 age INT,
7 addr VARCHAR(50)
8 );
9
10 CREATE TABLE around.small -- 创建数据库表 small
11 (id TINYINT PRIMARY KEY auto_increment,
12 name VARCHAR(30),
13 dg_id TINYINT,
14 CONSTRAINT xd FOREIGN KEY (dg_id) REFERENCES boss (id) -- 外键
15 ON DELETE CASCADE -- 级联操作 主键删除数据后 自动删除子表关联数据
16 );
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>表间关联
连接查询:
1 use around;
2 create table emp(
3 emp_id int auto_increment primary key not null,
4 emp_name varchar(50),
5 age int,
6 dept_id int
7 );
8
9 create table dep(
10 dept_id int,
11 dept_name varchar(100)
12 );
13
14
15 insert into emp(emp_name,age,dept_id) values
16 ('A',19,200),
17 ('B',26,201),
18 ('C',30,201),
19 ('D',24,202),
20 ('E',20,200),
21 ('F',38,204);
22
23
24 insert into dep values
25 (200,'人事部'),
26 (201,'技术部'),
27 (202,'销售部'),
28 (203,'财政部');
29
30
31 SELECT emp.emp_name ,dep.dept_name FROM emp INNER JOIN dep ON emp.dept_id=dep.dept_id WHERE emp.emp_name="A";
32
33
34 SELECT emp.emp_name,dep.dept_name FROM emp INNER JOIN dep ON emp.dept_id=dep.dept_id WHERE dep.dept_name="技术部";
35
36 SELECT * FROM emp INNER JOIN dep ON emp.dept_id=dep.dept_id WHERE emp.age>25;
37
38 SELECT * FROM emp WHERE dept_id IN (SELECT dept_id FROM dep);
39
40 CREATE TABLE net (SELECT * FROM emp WHERE dept_id IN (SELECT dept_id FROM dep));