1. 什么是SQl
SQL(结构化查询语言):用于管理关系数据库管理系统(RDBMS)
SQL的范围包括数据增删查改,数据库模式创建和修改,以及数据访问控制
注意:SQl对大小写不敏感,SELECT与select是相同的
2. 创建修改与删除数据库和数据库表
2.1 创建CREATE
(1)创建数据库
- 创建:CREATE DATABASE 数据库名;
- 显示已存在的数据库:SHOW DATABASES;
(2)创建数据库表
- 创建:
CREATE TABLE 表名(属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件],
.
.
.
属性名 数据类型);
- 注意:
在创建表之前,首先要使用use语句来选择数据库。use 数据库名;
表名不能为SQL语言的关键字,比如create、updata和order都不能做表名。
- 约束条件:
约束条件 | 说明 |
PRIMARY_KEY | 标识该属性为该表的主键,可以唯一的标识对应的元组 |
FOREIGN_KEY | 标识该属性为该表的外键,是与之联系的某表的主键 |
NOT NULL | 标识该属性不能为空 |
UNIQUE | 标识该属性的值是唯一的 |
AUTO_INCREMENT | 标识该属性的值自动增加,这是MySQL的SQL语句的特色 |
DEFAULT | 为该属性设置默认值 |
2.2 修改ALTER
(1)ALTER用于在已有的表中添加、修改或删除列
- 添加一个新字段 ADD(关键字)
ALTER TABLE 数据库名称 ADD 表名称 datatype(数据类型);
在test数据库添加一个date类型test07字段
ALTER TABLE test ADD test07 date;
- 删除一个字段DROP(关键字)
ALTER TABLE 数据库名称 DROP COLUMN 表名称 datatype(数据类型)
在test数据库删除test07字段
ALTER TABLE test DROP COLUMN test07 date;
- 修改一个字段ALERT COLUMN(关键字)
ALTER TABLE 数据库名称 ALTER COLUMN 表名称 datatype(数据类型);
2.3 删除DROP
(1)删除数据库
- 删除:DROP DATABASE 数据库名;
(2)删除数据库表
- 删除:DROP TABLE 数据库表名;
3. 数据库表的增删查改与其它
3.1 增:INSERT INTO
语法:
(1)不指定插入数据的列名称
INSERT INTO table_name
VALUES(value1, value2, value3, ...);
(2)指定插入数据的列名
INSERT INTO table_name(column1, column2, column3, ...)
VALUES(value1, value2, value3, ...);
实例:
INSERT INTO Websites (name, url, alexa, country)
VALUES ('百度','https://www.baidu.com/','4','CN');
3.2 删:DELETE
语法:
DELETE FROM table_name
WHERE condition;
实例:
DELETE FROM Websites
WHERE name='Facebook' AND country='USA';
删除所有数据:
DELETE FROM table_name;
3.3 查:SELECT
语法:
(1)不带条件查询
SELECT column1, column2, ...
FROM table_name;
或者(*代表输出表的所有列)
SELECT *
FROM table_name;
(2)带条件查询
SELECT column1, column2, ...
FROM table_name
WHERE condition;
或者(*代表输出表的所有列)
SELECT *
FROM table_name
WHERE condition;
实例:
SELECT name,country FROM Websites;
SELECT * FROM Websites WHERE id=1;
3.4 改:UPDATE
语法:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
实例:
UPDATE Websites
SET alexa='5000', country='USA'
WHERE name='菜鸟教程';
3.5 其它
- DISTINCT:去重
SELECT DISTINCT country FROM Websites;
- AND&OR:多重条件取和还是取或
SELECT * FROM Websites
WHERE country='CN'
AND alexa > 50;
- ORDER BY:排序。默认升序ASC,DESC降序
SELECT * FROM Websites
ORDER BY alexa DESC;
- AS:重命名。可是列名,也可是表名
列的别名
SELECT column_name AS alias_name
FROM table_name;
表的别名
SELECT column_name(s)
FROM table_name AS alias_name;