MySQL语法
数据库入门
SQL的分类:
- DDL—数据定义语言(Data Define Language):create(创建),alter(修改),drop(删除),TRUNCATE(截断),RENAME(重命名);
- DML—数据操纵语言(Data Manipulation Language):select(查询),delete(删除),update(更新),insert(新增);
- DCL—数据控制语言(Data Control Language):grant(添加权限),revoke(回收权限);
数据库基本操作
注释
/* 注释
# 注释
-- 注释
*/
创建
```
-- 创建数据库
CREATE DATABASE [IF NOT EXISTS] DATABASE_NAME [库选项];
-- 创建数据表
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] TABLE_NAME (字段名 字段类型 [字段属性]...)[表选项];
```
DATABASE_NAME.TABLE_NAME
CREATE TABLE DATABASE_NAME.TABLE_NAME (...)
-- 使用DATABASE_NAME.TABLE_NAME的形式在任何数据库下访问其它数据据库中的表,也就是说可以不使用USE
e.g
CREATE TABLE goods (
id INT COMMENT '编号',
name VARCHAR(32) COMMENT '商品名',
price INT COMMENT '价格',
description VARCHAR(255) '商品描述'
);
# COMMENT 备注/描述
# id,name,price,description 字段名称
# INT 整型
# VARCHAR(32) 长度为32的可变字符型
查看
-- 查看数据库
SHOW DATABASES;
SHOW CREATE DATABASE DATABASE_NAME;
-- 查看数据表
SHOW TABLES [LIKE 匹配模式];
SHOW TABLE STATUS [FORM DATABASE_NAME] [LIKE 匹配模式];# STATUS 查看TABLE详细信息
-- 查看创建表语句
SHOW CREATE TABLE TABLE_NAME;
-- 查看所有字段信息
{ DESCRIBE | DESC }TABLE_NAME;
-- 查看指定字段信息
DESC TABLE_NAME 字段名;
e.g
SHOW TABLES LIKE '%oo%';
# 查询当前DATABASE中TABLE_NAME中包含oo的TABLE
选择
-- 选择数据库
USE DATABASE_NAME;
删除
-- 删除数据库
DROP DATABASE [IF EXISTS] DATABASE_NAME;
-- 删除数据表
DROP TABLE [IF EXISTS] TABLE_NAME;
-- 清空表
TRUNCATE [TABLE] TABLE_NAME; # 不在日志中记录(更快),自增字段初始值恢复为1
-- 删减表
DELETE FROM TABLE_NAME; # 删减全部
DElETE FROM TABLE_NAME [WHERE 条件];
表选项
修改
-- 修改表名ALTER TABLE old_TABLE_NAME RENAME [TO|AS] new_TABLE_NAME;RENAME TABLE old_TABLE_NAME TO new_TABLE_NAME[,old_TABLE2_NAME TO new_TABLE2_NAME]...;-- 修改表选项ALTER TABLE TABLE_NAME 表选项 [=] 值;-- 修改表UPDATE TABLE_NAME SET 字段=值 WHERE 条件;
关于条件
UPDATE TABLE_NAME SET 字段=值 WHERE 条件;多个条件使用 AND|OR 来隔开eg.UPDATE Score SET final=‘99’ WHERE sno=‘2’ AND cno=‘c4’;
插入(数据)
-- 一次插入多行数据INSERT INTO TABLE_NAME VALUES (数据1),(数据2),(数据3),...;-- 插入单行数据INSERT INTO TABLE_NAME { VALUE|VALUES } (值1,值2,...);-- 为指定字段添加数据INSERT INTO TABLE_NAME SET 字段1=值1[,字段2=值2...];REPLACE INTO TABLE_NAME (字段1,字段2,...) VALUES(值1,值2,...);# replace具备替换拥有唯一索引或者主键索引重复数据的能力,也就是如果使用replace into插入的数据的唯一索引或者主键索引与之前的数据有重复的情况,将会删除原先的数据,然后再进行添加。-- 一次插入多行数据-SELECT子查询INSERT INTO TABLE_NAME SELECT ...;
Comments | NOTHING