MySQL语法#1

发布于 2022-02-24  22 次阅读


MySQL语法

数据库入门

SQL的分类:

  1. DDL—数据定义语言(Data Define Language):create(创建),alter(修改),drop(删除),TRUNCATE(截断),RENAME(重命名);
  2. DML—数据操纵语言(Data Manipulation Language):select(查询),delete(删除),update(更新),insert(新增);
  3. 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

20210329153852e22671135915aa15.png

选择

-- 选择数据库
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 ...;

蔚蓝天空上的无垠,盲目痴愚后的泯然