基础知识
数据库的功能
存储大量数据,方便检索和访问
保持数据信息的一致、完整
共享和安全
通过组合分析,产生新的有用信息
数据库的概念
数据库(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 '学生表';