大括号{}的内容表示是必有的内容
中括号[]表示的是可选的内容
连接符|连接的是任意有一个的内容
1、打开数据库 USE {数据库的名字}
2、创建数据库 CREATE DATABASE db_name ;
3、创建数据表
CREATE TABLE table_name(
column_name data_type,
…
)
CREATE TABLE usertable(
user_id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED NULL
);
4、插入数据 INSERT [INTO] table_name [(col_name,…)] VALUES(val,…);
对所有列插入数据:因为user_id是自增长,所以可以用default属性;
INSERT usertable VALUES(default,'Tom',25);
对某几列插入数据:
INSERT usertable (age,username) VALUES(25,'Joy');
INSERT usertable (username) VALUES('Linda');
INSERT usertable (age) VALUES(24);//这句会报错,Field 'username' doesn't have a default value,因为插入age,username没有默认的数值;上一句插入Linda没有报错是因为age可以为空。
第二种插入数据的方法: INSERT [INTO] table_name SET col_name = {expr|DEFAULT},…
INSERT usertable SET username = 'Jim', age= 24;
从其他表中查询插入:
INSERT usertable (username,age) SELECT username,age FROM usertable WHERE age >10;
插入多条记录
INSERT INTO usertable VALUES(DEFAULT,'Tom',80),(DEFAULT,'Jim',90),(DEFAULT,'Linda',20);
5、AUTO_INCREMENT属性和PRIMARY KEY属性
第4点建表的时候,对user_id用了这两点属性;分别代表自增长,和主键
PRIMARY KEY:主键,自动为NOT NULL;每张数据表只能有一个主键,记录的唯一性;
AUTO_INCREMENT:MySQL 每张表只能有1个自动增长字段,这个自动增长字段即可作为主键,也可以用作非主键使用,但是请注意将自动增长字段当做非主键使用时必须必须为其添加唯一约束,否则系统将会报错。
6、UNIQUE KEY:
第五点的唯一约束,字段可以为空,可以有多个唯一约束;唯一约束保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的
7、NULL值和NOT NULL值 ;DEFAULT约束
8、记录查找:SELECT {expr,…} FROM {tab_name};
简单用法
SELECT * FROM usertable;
9、更新: UPDATE
UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1 = {expr1|DEFAULT}[,col_name = {expr|DEFAULT}]…[WHERE where_condition]
UPDATE usertable SET age = 23 WHERE username = 'Linda';
UPDATE usertable SET age = age + 5 WHERE user_id%2=0;
10、记录删除:DELECT
DELETE FROM tbl_name [WHERE where_condition]
DELETE FROM usertable WHERE username = 'Linda';
11、表删除 :DROP
DROP TABLE table_name ;
DROP TABLE user_table;
PS:delete from 表名 执行delete后,表结构依然存在,只删除表中全部数据。drop from 表名 执行drop后,表结构和数据全部被删除。并且delete执行后还有个提交的过程,drop就一步操作完成。参考:三种删除方式的比较
12、修改数据表:ALTER
添加单列:ALTER TABLE table_name ADD [COLUMN] col_name column_definition [FIRST|AFTER col_name]
ALTER TABLE usertable ADD Backup VARCHAR(50);
添加多列:ALTER TABLE tbl_name ADD [COLUMN](col_name column_definition,…)
ALTER TABLE message
ADD Others5 VARCHAR(50) ,
ADD Others6 VARCHAR(50) NOT NULL FIRST;
删除列:ALTER TABLE tbl_name DROP [COLUMN] col_name
ALTER TABLE message Drop Others1;//删除单列
ALTER TABLE message Drop Others6,DROP Others2,DROP Others3,DROP Others4,DROP Others5;
添加唯一約束:ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,…)
ALTER TABLE usertable ADD UNIQUE (username);
删除唯一约束:ALTER TABLE tbl_name DROP {INDEX|KEY} index_name
ALTER TABLE usertable DROP INDEX username;
修改列定义:ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRST|AFTER col_name]
修改列名称:尽量别对数据表和数据列更改名字。。
① ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST|AFTER col_name]
② RENAME TABLE tbl_name TO new_tbl_name[,tbl_name2 TO new_tbl_name2]…