目录
一、SQL语言分类
1.SQL简介
SQL即结构化查询语言,主要用于存取数据、查询数据、更新数据和管理数据库系统,SQL语言由IBM开发。
2.SQL分类
- DDL语句 数据库定义语言:数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
- DML语句 数据库操纵语言:插入数据INSERT、删除数据DELETE、更新数据UPDATE
- DQL语句 数据库查询语言:查询数据SELECT
- DCL语句 数据库控制语言:例如控制用户的访问权限GRANT、REMOVE
二、名词解释
- 数据库服务器:运行着数据库应用程序的设备;硬件+系统软件+MySQL软件
- 数据库:默认数据库;表(EXCEL)的管理单元
- 表:记录的管理单元
- 记录(行):信息的载体,字段的管理单元
- 字段(列):字段名,字段类型(长度),字段约束组成(可选)
- 类型:字符,数字,日期
- 约束:不能为空,自动增长
三、DDL
1.DDL-库
定义库
- 创建业务数据库
语法:create database 库名;
例:create database discuz;
数据库名要求:区分大小写;唯一性;不能使用关键字如create select;不能单独使用数字和特殊符号“如-”;正常的用拼音或单词创建数据库名即可
- 查看所有数据库
show databases;
- 选择/进入数据库
use 库名;
select database();调用函数,查询当前库
- 删除数据库
drop database 库名;
- 系统中的位置
ls /var/lib/mysql 清理或者备份时到这个目录下
2.数据类型
- 数值类型
整数类型 int
浮点数类型 float
- 字符串类型
字符类型 char和varchar
枚举类型 enum
集合类型 set
- 时间和日期类型
年year
日期date
时间time
日期和时间datetime
3.DDL-表
- 创建目的
表是数据库存储数据的基本单位,表由若干字段(列)组成,主要迎来存储数据记录(行)。
- 操作数据库示例1-创建1列的表格-序号
mysql> create database test1; //创建test1数据库 Query OK, 1 row affected (0.01 sec) mysql> use test1; //使用库 Database changed mysql> create table t1 (id int); //创建表格名为t1,t1有一个id列,类型为int Query OK, 0 rows affected (0.03 sec) mysql> show tables; //查看所有表名 +-----------------+ | Tables_in_test1 | +-----------------+ | t1 | +-----------------+ 1 row in set (0.00 sec) mysql> INSERT INTO t1 VALUES (1); //在t1表中插入数值1 Query OK, 1 row affected (0.10 sec) mysql> SELECT * FROM t1; //查询t1表中的所有数据 +------+ | id | +------+ | 1 | +------+ 1 row in set (0.00 sec) mysql> show databases; //查看所有数据库 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test1 | +--------------------+ 5 rows in set (0.00 sec) mysql> drop table t1; //删除t1表 Query OK, 0 rows affected (0.01 sec)
- 操作数据库示例2-创建两列的表格-序号和姓名
mysql> create table t2 (id int,name varchar(20)); //创建表格,表名t2(第一列名id 数字类型;第二列名name 字符类型(长度)) Query OK, 0 rows affected (0.04 sec) mysql> desc t2; //查看表的结构 +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int | YES | | NULL | | | name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.02 sec) mysql> show tables; //查看表名 +-----------------+ | Tables_in_test1 | +-----------------+ | t2 | +-----------------+ 1 row in set (0.00 sec) mysql> select * from t2; //查看表中内容 Empty set (0.00 sec) mysql> INSERT INTO t2 VALUES (1,"zhangsan"); //在t2中插入第一列和第二列信息,数字不能加引号,字符必须加引号(转义符) Query OK, 1 row affected (0.01 sec) mysql> select * from t2; //查询t2表格数据 +------+----------+ | id | name | +------+----------+ | 1 | zhangsan | +------+----------+ 1 row in set (0.01 sec)
- 操作数据库示例3
mysql> create database school; //创建数据库school Query OK, 1 row affected (0.01 sec) mysql> show databases; //查看数据库 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | school | | sys | | test1 | +--------------------+ 6 rows in set (0.01 sec) mysql> create table student1 (id int,name varchar(20),sex enum('m','f'),age int); Query OK, 0 rows affected (0.02 sec) mysql> show tables; //查看表 +-----------------+ | Tables_in_test1 | +-----------------+ | student1 | | t2 | +-----------------+ 2 rows in set (0.00 sec) mysql> insert into student1 values(1,"zhangsan",'m',20); Query OK, 1 row affected (0.00 sec) mysql> insert into student1 values(2,"lin",'f',21); Query OK, 1 row affected (0.01 sec) mysql> select * from student1; //查看表的内容 +------+----------+------+------+ | id | name | sex | age | +------+----------+------+------+ | 1 | zhangsan | m | 20 | | 2 | lin | f | 21 | +------+----------+------+------+ 2 rows in set (0.00 sec) mysql> desc student1; //查看表结构 +-------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------------+------+-----+---------+-------+ | id | int | YES | | NULL | | | name | varchar(20) | YES | | NULL | | | sex | enum('m','f') | YES | | NULL | | | age | int | YES | | NULL | | +-------+---------------+------+-----+---------+-------+ 4 rows in set (0.00 sec)