MySQL基本语句

一、DDL(数据定义语言)

DDL 主要用于定义数据库、表、视图、索引等数据库对象的结构

1.1 创建数据库

CREATE DATABASE database_name;

 

1.2 删除数据库

DROP DATABASE database_name;

1.3 选择数据库

USE database_name;

1.4 创建表

CREATE TABLE table_name (
    column1 datatype constraint,
    column2 datatype constraint,
    ...
    column... datatype constraint
);

1.5 删除表

DROP TABLE table_name;

1.6 清空表数据

用于快速删除表中的所有记录,同时保留表的结构。它不能进行条件删除,并且执行速度通常比delete更快。

truncate table table_name;

二、DML(数据操纵语言)

DML 主要用于对数据库表中的数据进行插入、更新、删除和查询操作

2.1 ALTER TABLE 语句来为表增加一列信息

在指定位置添加新列

如果你想将新列添加到表中指定的位置,可以使用 AFTERFIRST 关键字。

2.1.1 AFTER 关键字
  • AFTER 关键字:用于将新列添加到某个已有列之后。

ALTER TABLE table_name
ADD COLUMN column_name data_type [column_constraint]
AFTER existing_column;

示例:若要在 students 表的 name 列之后添加一个名为 phone 的列,数据类型为 VARCHAR(20),可使用以下语句:

ALTER TABLE students
ADD COLUMN phone VARCHAR(20)
AFTER name;

2.1.2 FIRST 关键字
  • FIRST 关键字:用于将新列添加到表的第一列位置。

ALTER TABLE table_name
ADD COLUMN column_name data_type [column_constraint]
FIRST;

示例:若要在 students 表的开头添加一个名为 student_id 的列,数据类型为 INT,可使用以下语句:

ALTER TABLE students
ADD COLUMN student_id INT
FIRST;

2.2 插入数据

2.2.1 插入单条数据
INSERT INTO table_name (column1, column2, ...) 
VALUES (value1, value2, ...);

2.2.2插入多条数据
INSERT INTO table_name (column1, column2, ...) 
VALUES (value1, value2, ...),
    (value1, value2, ...),
    (value1, value2, ...),
    (value1, value2, ...);

2.3 查询数据

2.3.1 查询整个表
SELECT * FROM table_name;

2.3.2 在表中的某一列查询相同元素(值)
SELECT * FROM employees WHERE department = 'HR';

2.3.2.例
SELECT * FROM employees WHERE department = 'HR';

该语句从 employees 表中查询所有部门为 HR 的记录。

2.4 更新数据

UPDATE table_name 
SET column1 = value1, column2 = value2, ... 
WHERE condition;

2.4.例
UPDATE employees 
SET salary = 5500.00 
WHERE name = 'John Doe';

此语句将 employees 表中名为 John Doe 的员工的工资更新为 5500.00。

2.5 删除数据

用于从表中删除符合指定条件的记录。如果省略where条件,将会删除表中的所有数据,但表结构依然保留。

DELETE FROM table_name 
WHERE condition;

三、DCL(数据控制语言)

DCL 用于控制用户对数据库对象的访问权限

3.1 授予权限

GRANT SELECT, INSERT ON students TO 'user1'@'localhost';

此语句授予用户 user1(来自 localhost)对 students 表的 SELECTINSERT 权限。

3.2 撤销权限

REVOKE INSERT ON students FROM 'user1'@'localhost';

该语句撤销用户 user1(来自 localhost)对 students 表的 INSERT 权限。

四、TCL(事务控制语言)

TCL 用于管理数据库事务

4.1 开始事务

START TRANSACTION;

该语句用于开始一个新的事务。

4.2提交事务

COMMIT;

此语句用于提交当前事务,将事务中所做的所有更改永久保存到数据库中。

4.3 回滚事务

ROLLBACK;

该语句用于回滚当前事务,撤销事务中所做的所有更改。

SQL 中常见的约束类型、描述、示例以及作用:

约束类型 描述 示例 作用
主键约束(PRIMARY KEY) 用于唯一标识表中的每一行记录,一个表只能有一个主键,且主键值不能为NULL sql
CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
保证表中记录的唯一性,可用于关联其他表,便于数据的快速检索和管理
唯一约束(UNIQUE) 确保列中的值是唯一的,一个表可以有多个唯一约束,且唯一约束列可以有NULL值(但只能有一个NULL值) sql
CREATE TABLE users (
user_id INT,
email VARCHAR(100) UNIQUE,
username VARCHAR(50)
);
保证列值的唯一性,常用于如邮箱、身份证号等不能重复的字段
非空约束(NOT NULL) 规定列的值不能为空,在插入或更新数据时,该列必须有值 sql
CREATE TABLE employees (
employee_id INT,
name VARCHAR(50) NOT NULL,
department VARCHAR(50)
);
确保数据的完整性,防止重要信息缺失
外键约束(FOREIGN KEY) 用于建立表与表之间的关联关系,外键列的值必须是关联表中主键列的值或为NULL sql
CREATE TABLE orders (
order_id INT PRIMARY KEY,
product_id INT,
customer_id INT,
FOREIGN KEY (product_id) REFERENCES products(product_id),
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
维护表之间的数据一致性和完整性,确保相关联的数据在不同表中是有效的关联关系
检查约束(CHECK) 用于限制列中值的范围或条件,确保插入或更新的数据满足特定的条件 sql
CREATE TABLE products (
product_id INT,
price DECIMAL(10, 2),
CHECK (price >= 0)
);
保证数据的有效性,防止不符合业务规则的数据插入表中
默认约束(DEFAULT) 为列指定一个默认值,当插入数据时,如果没有为该列提供值,则使用默认值 sql
CREATE TABLE students (
student_id INT,
gender CHAR(1) DEFAULT 'M',
grade INT
);
为列提供一个默认值,简化数据插入操作,避免因未提供值而导致的错误

你可能感兴趣的:(mysql,数据库,oracle)