Skip to content
On this page

基础知识

数据库的功能

  • 存储大量数据,方便检索和访问

  • 保持数据信息的一致、完整

  • 共享和安全

  • 通过组合分析,产生新的有用信息

数据库的概念

数据库(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 '学生表';