MySQL之进化篇
MySQL之实用篇
拿去用,不谢!
MySQL 基础知识
- MySQL默认的端口号是3306
- MySQL中的超级用户是root
- 创建数据库 CREATE DATABASE
- 修改数据库 ALTER DATABASE
- 删除数据库 DROP DATABASE
MySQL的数据类型
整形
数据类型 | 存储范围 | 所占字节 |
---|---|---|
TINYINT | 有符号值:-128到127 无符号值:0到255 | 1 |
SMALLINT | 有符号值:-32768到32767 无符号值:0到65535 | 2 |
MEDIUMINT | 有符号值:-2147483648到2147483647 无符号值:0到16777215 | 3 |
INT | 有符号值:-8388608到8388607 无符号值:0到4294967295 | 4 |
BIGINT | 有符号值:-9223372036854775808到9223372036854775807 无符号值:0到18446744073709551615 | 8 |
简单的sql
约束
约束的类型包括:
- NOT NULL (非空约束)
- PRIMARY KEY (主键约束)
- UNIQUE KEY (唯一约束)
- DEFAULT (默认约束)
- FOREIGN KEY (外键约束)
创建表
CREATE TABLE IF NOT EXISTS table_name (cloum_name data_type,...)
for example:
CREATE TABLE IF NOT EXISTS zwbTable (userId INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,userName TEXT NOT NULL, age TINYINT UNSIGNED UNIQUE KEY,salary Float(8,2) UNSIGNED DEFAULT 100)
- PRIMARY KEY 主键
注意:每张表只能有一个主键,主键保证唯一性,主键自动为NOT NULL
- AUTO_INCREMENT 自动编号 保证数据的唯一性,不会出现重复的记录,默认起始值为1,每次的增量为1
注意: AUTO_INCREMENT 必须和 PRIMARY KEY 主键 一起使用
- UNIQUE KEY 唯一约束 唯一约束可以保证记录的唯一性,可以为空 NULL , 每张表可以存在多个唯一约束
- FLOAT(M,D) M是数字的总位数,D为小数点后面的位数
- UNSIGNED 无符号值
- DEFAULT 设置默认值
插入数据
INSERT INTO table_name (colum_name,...) VALUES(val,...)
for example:
INSERT INTO zwbTable(userName,age)VALUES('zwb',20)
数据库查询
SELECT expr,... FROM tableName
for example:
SELECT * FROM zwbTabel
外键连接
CREATE TABLE provinces(id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, pname VARCHAR(20) NOT NULL)
CREATE TABLE users(id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL,pid SMALLINT UNSIGNED,FOREIGN KEY(pid) REFERENCES provinces (id))
注意:
- CASCADE(英文串联的意思) :从父表删除或更新且自动删除或更新子表中的匹配的行
- SET NULL: 从父表删除或更新行,并设置子表中的外键列为NULL. 如果使用该选项,必须保证子表列没有指定NOT NULL.
- RESTRICT :拒绝对父表的删除或更新操作
- NO ACTION : 标准SQL的关键字,在MySQL中与RESTRICT相同
修改数据表
-
添加单列
ALTER TABLE table_name ADD [COLUMN] column_name [FIRST | AFTER column_name]
for example:
ALTER TABLE zwbTabel ADD sex TEXT NOT NULL AFTER username
-
添加多列
ALTER TABLE zwbTabel ADD (lala TEXT NOT NULL , haha TEXT NOT NULL)
-
删除列
ALTER TABLE table_name DROP column_name
for example:
ALTER TABLE zwbTabel DROP age
-
删除多列
ALTER TABLE zwbTabel DROP lala, DROP haha
-
添加主键约束
ALTER TABLE ADD table_name ADD [CONSTRAINT[symbol]] PARMARY KEY (cloumn_name)
for example:
ALTER TABLE users2 ADD CONSTRAINT PK_users2_id PRIMARY KEY (id)
-
添加唯一约束
ALTER TABLE table_name ADD CONSTRAINT[symbol]] UNIQUE KEY
for example:
ALTER TABLE users2 ADD UNIQUE KEY (pid)
-
添加外键约束
ALTER TABLE ADD table_name ADD CONSTRAINT[symbol]] FOREIGN KEY (column_name) REFERENCE_DEFINITION
for example:
ALTER TABLE users2 ADD CONSTRAINT PK_users2_id PRIMARY KEY (id)
删除约束
-
删除主键约束
ALTER TABLE DROP PRIMARY KEY
-
删除唯一约束
ALTER TABLE table_name DROP {INDEX|KEY} id
for example:
ALTER TABLE users DROP KEY id
-
删除外键约束
ALTER TABLE table_name DROP FOREIGN KEY fk_symbol
注意: fk_symbol 是外键约束的名字
for example:
ALTER TABLE users2 DROP FOREIGN KEY PK_users2_id