基础知识
数据库的功能
存储大量数据,方便检索和访问
保持数据信息的一致、完整
共享和安全
通过组合分析,产生新的有用信息
数据库的概念
数据库(DB)
- 数据的仓库,可以存放结构化的数据
数据库管理系统(DBMS)
- 一种系统软件,提供操作数据库的环境,可以通过数据库管理系统对数据进行
插入、修改、删除和查询等操作。
SQL
结构化查询语言,专门用来和数据库进行交流的语言,几乎所有的DBMS都支持SQL
SQL规范
SQL语句不区分大小写,建议SQL关键字大写,表名和列表小写命令用
分号结尾命令可以缩进和换行,一种类型的关键字放在一行
可以写
单行和多行注释,#和--是单行注释,/***/是多行注释
MySQL
连接MySQL
- 通过
命令行连接
shell
mysql -h 127.0.0.1 -P 3306 -uroot -p123456
切换数据库
SQL
USE database_name;
# 例如
USE student;
显示有哪些表
SQL
SHOW TABLES;
# 或者
SHOW TABLES FROM database_name;
显示当前数据库
SQL
SELECT DATABASE();
显示当前数据库版本
SQL
SELECT VERSION();
显示当前登录用户
SQL
SELECT USER();
查看表结构
SQL
DESC database_name.table_name;
DESC table_name;
# 例如
DESC test.user;
查看创建表和增加列的具体语句
SQL
SHOW CREATE TABLE table_name;
数据操作
创建表
SQL
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(32) NOT NULL COMMENT '姓名',
`age` int(11) NULL COMMENT '年龄',
PRIMARY KEY (id)
)
COMMENT '学生表'
创建一张表并且复制另一张表的数据
例如:创建新的student1表,并复制student表的内容到新的student1表中
TIP
复制表时,主键、外键不会被复制过来
SQL
CREATE TABLE student1 SELECT * FROM student;
删除表
SQL
DROP TABLE IF EXISTS student1;
增加/修改/删除字段
增加字段
SQL
# 在age后增加id_card字段
ALTER TABLE `student` ADD COLUMN `id_card` varchar(16) NULL AFTER `age`;
增加后表定义如下
SQL
-- auto-generated definition
CREATE TABLE student
(
id int AUTO_INCREMENT COMMENT 'id'
PRIMARY KEY,
name varchar(32) NOT NULL COMMENT '姓名',
age int NULL COMMENT '年龄',
id_card varchar(16) NULL
)
COMMENT '学生表';
修改字段
SQL
ALTER TABLE `student` MODIFY COLUMN `id_card` varchar(18) COMMENT '身份证号';
修改后表定义如下
SQL
-- auto-generated definition
CREATE TABLE student
(
id int AUTO_INCREMENT COMMENT 'id'
PRIMARY KEY,
name varchar(32) NOT NULL COMMENT '姓名',
age int NULL COMMENT '年龄',
id_card varchar(18) NULL COMMENT '身份证号'
)
COMMENT '学生表';
删除表字段
SQL
ALTER TABLE `student`DROP COLUMN `id_card`;
删除后表定义如下
SQL
-- auto-generated definition
CREATE TABLE student
(
id int AUTO_INCREMENT COMMENT 'id'
PRIMARY KEY,
name varchar(32) NOT NULL COMMENT '姓名',
age int NULL COMMENT '年龄'
)
COMMENT '学生表';