CODE_DATABASE

Database - MYSQL

  1. Most of the commands in MYSQL is end up with ‘;’, consequently, if you do not input ‘;’, the dos will show you something like ‘->’ until you complete the command with ‘;’
  2. 1
    2
    3
    sudo service mysql start
    mysql -u root
    使用命令 show databases;,查看有哪些数据库(注意不要漏掉分号 ;)
  3. 选择连接其中一个数据库,语句格式为 use <数据库名>,这里可以不用加分号,这里我们选择 information_schema 数据库

  4. 使用命令 show tables; 查看数据库中有哪些表(注意不要漏掉“;”)
  5. 我们创建一个数据库,给它一个名字,比如 mysqlShiyan(mysql_shiyan this format is wrong),以后的几次实验也是对 mysqlShiyan 这个数据库进行操作。 语句格式为 CREATE DATABASE <数据库名字>;,(注意不要漏掉分号 ;),前面的 CREATE DATABASE 也可以使用小写
  6. Create a database

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    create database library;
    use library;

    create table book(
    book_id int primary key,
    book_name varchar(50) not null
    );

    create table reader(
    reader_id int primary key,
    reader_name varchar(50) not null
    );
  7. 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性

  8. 加载文件中的数据,需要在 MySQL 控制台中输入命令:
    /home/shiyanlou/Desktop/SQL3/MySQL-03-01.sql``` without
    1
    2
    3. 在数据库中,如果有两行记录数据完全一样,那么如何来区分呢? 答案是无法区分,如果有两行记录完全相同,那么对于 Mysql 就会认定它们是同一个实体,这于现实生活是存在差别的
    4. git clone https://github.com/shiyanlou/SQL3.git

CREATE DATABASE mysql_shiyan;

use mysql_shiyan;

CREATE TABLE department
(
dpt_name CHAR(20) NOT NULL,
people_num INT(10) DEFAULT ‘10’,
CONSTRAINT dpt_pk PRIMARY KEY (dpt_name)
);

CREATE TABLE employee
(
id INT(10) PRIMARY KEY,
name CHAR(20),
age INT(10),
salary INT(10) NOT NULL,
phone INT(12) NOT NULL,
in_dpt CHAR(20) NOT NULL,
UNIQUE (phone),
CONSTRAINT emp_fk FOREIGN KEY (in_dpt) REFERENCES department(dpt_name)
);

CREATE TABLE project
(
proj_num INT(10) NOT NULL,
proj_name CHAR(20) NOT NULL,
start_date DATE NOT NULL,
end_date DATE DEFAULT ‘2015-04-01’,
of_dpt CHAR(20) REFERENCES department(dpt_name),
CONSTRAINT proj_pk PRIMARY KEY (proj_num,proj_name)
);
`

  1. 视图是从一个或多个表中导出来的表,是一种虚拟存在的表。它就像一个窗口,通过这个窗口可以看到系统专门提供的数据,这样,用户可以不用看到整个数据库中的数据,而只关心对自己有用的数据。
  2. 由于导入导出大量数据都属于敏感操作,根据 mysql 的安全策略,导入导出的文件都必须在指定的路径下进行
  3. 备份与导出的区别:导出的文件只是保存数据库中的数据;而备份,则是把数据库的结构,包括数据、约束、索引、视图等全部另存为一个文件