接上文:MySQL的知识点(2)
该文章主要包含创建表,添加,修改,删除等知识点,如有遗漏,请评论区告诉博主,谢谢。
注意:输入法请切换成英文输入法
1、创建表的语句
关键词:create table
创建表,primary key
主键,auto_increment
自增长,COMMENT
备注
-- 创建数据库
create database test_user;
-- 选择创建的数据库
use test_user;
-- 创建一张表
create table user(
id int primary key auto_increment NOT NULL COMMENT '非空自增长主键',
name varchar(50) NOT NULL COMMENT '姓名',
age int COMMENT '年龄'
);
-- 显示user表的信息
DESC user;
/* 数据表信息显示如下
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(50) | NO | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
*/
2、插入语句
关键词:INSERT into
插入 ,user(name,age)
表对应的列名values(...,...)
列值
insert into user (name,age) values('张三',20);
insert into user(name) values('李四');
INSERT INTO user(id,name,age) values(9,'王五',22);
-- 查看数据表的值
SELECT * FROM user;
/*
+----+--------+------+
| id | name | age |
+----+--------+------+
| 1 | 张三 | 20 |
| 2 | 李四 | NULL |
| 9 | 王五 | 22 |
+----+--------+------+
*/
-- 批量添加语句
INSERT INTO user(name,age) values('王武',21),('李思',21),('老六',24);
-- 再次查询数据
SELECT * FROM user;
/*
+----+--------+------+
| id | name | age |
+----+--------+------+
| 1 | 张三 | 20 |
| 2 | 李四 | NULL |
| 9 | 王五 | 22 |
| 10 | 王武 | 21 |
| 11 | 李思 | 21 |
| 12 | 老六 | 24 |
+----+--------+------+
*/
3、修改语句
关键词:UPDATE
修改更新,SET
修改赋值,WHERE
指定条件
如果不加WHERE添加限定更新条件,将会更改所有行的数据
-- 更新指定数据的年龄
UPDATE user SET age=21 WHERE id=2;
-- 查看指定数据
SELECT * FROM user WHERE id=2;
/*
+----+--------+------+
| id | name | age |
+----+--------+------+
| 2 | 李四 | 21 |
+----+--------+------+
*/
UPDATE user SET name='czx',age=22 WHERE id = 2;
SELECT * FROM user WHERE id=2;
/*
+----+------+------+
| id | name | age |
+----+------+------+
| 2 | czx | 22 |
+----+------+------+
*/
-- 更新所有数据的年龄
UPDATE user SET age=18;
SELECT * FROM user;
/*
+----+--------+------+
| id | name | age |
+----+--------+------+
| 1 | 张三 | 18 |
| 2 | czx | 18 |
| 9 | 王五 | 18 |
| 10 | 王武 | 18 |
| 11 | 李思 | 18 |
| 12 | 老六 | 18 |
+----+--------+------+
*/
4、删除语句
关键词:DELETE
删除
4.1 基础删除
添加WHERE
条件进行指定删除
DELETE FROM user WHERE user.name='czx';
SELECT * FROM user;
/*
+----+--------+------+
| id | name | age |
+----+--------+------+
| 1 | 张三 | 18 |
| 9 | 王五 | 18 |
| 10 | 王武 | 18 |
| 11 | 李思 | 18 |
| 12 | 老六 | 18 |
+----+--------+------+
*/
4.2 按序删除
关键词:ORDER BY [[列名]]
在某列名下的排序,LIMIT
限定范围
按序删除经常与基础删除结合在一起删除,这样子在执行基础删除的时候就不会再去扫描全表,如果加上LIMIT 数字,执行完就return了,删除效率变高了。
SELECT * FROM user ORDER BY NAME;
/*
+----+--------+------+
| id | name | age |
+----+--------+------+
| 1 | 张三 | 18 |
| 11 | 李思 | 18 |
| 9 | 王五 | 18 |
| 10 | 王武 | 18 |
| 12 | 老六 | 18 |
+----+--------+------+
*/
-- 删除前两个数据,此处的LIMIT仅支持删除前几条数据
DELETE FROM user ORDER BY NAME LIMIT 2;
/*
+----+--------+------+
| id | name | age |
+----+--------+------+
| 9 | 王五 | 18 |
| 10 | 王武 | 18 |
| 12 | 老六 | 18 |
+----+--------+------+
*/
-- 添加数据
INSERT INTO user(name,age) values('王武',21),('李思',21),('老六',24);
-- 基础删除加按序删除
DELETE FROM user WHERE user.age=18 ORDER BY age LIMIT 3;
SELECT * from user;
/*
+----+--------+------+
| id | name | age |
+----+--------+------+
| 13 | 王武 | 21 |
| 14 | 李思 | 21 |
| 15 | 老六 | 24 |
+----+--------+------+
*/