mysql数据库用source命令导入.sql文件,执行SQL语句

一、准备.sql文件

下面是我做局域网QQ聊天系统写好的一个qq.sql文件,文件内容如下,在通过执行这个文件,我创建了6个数据库表:

-- 存放所有已经注册用户的信息
CREATE TABLE tbl_register_users
(
    name VARCHAR(20) NOT NULL PRIMARY KEY,  -- 主键
    passwd VARCHAR(20) NOT NULL,
    socketfd INT NOT NULL,
    is_online  TINYINT  NOT NULL,-- 是否在线 0 不在线  1 在线
    is_used TINYINT NOT NULL, -- 该文件描述符现在是否被用 0 没有被占用 1 被占有
    securiety VARCHAR(30) NOT NULL,  -- 密保
    isOfflineMsg TINYINT NOT NULL -- 0 没有, 1 有离线消息
)ENGINE=InnoDB,CHARACTER SET 'gbk' COLLATE 'gbk_chinese_ci';

-- 存放被禁言的用户,当禁言时间到了之后,就要把用户从禁言列表里面删除
CREATE TABLE tbl_gag_users
(
    gag_name VARCHAR(20) NOT NULL PRIMARY KEY,  -- 主键
    gag_minutes INT NOT NULL -- 禁言时间
)ENGINE=InnoDB,CHARACTER SET 'gbk' COLLATE 'gbk_chinese_ci';


-- 存放被管理员删除的用户,已经被加入该列表的用户,不能再注册
CREATE TABLE tbl_del_users
(
    del_name VARCHAR(20) NOT NULL PRIMARY KEY -- 主键
)ENGINE=InnoDB,CHARACTER SET 'gbk' COLLATE 'gbk_chinese_ci';

-- 存放某个用户和他的好友的信息
CREATE TABLE tbl_users_friends
(
    name VARCHAR(20) NOT NULL ,     
    friend_name VARCHAR(20) NOT NULL,   
    CONSTRAINT pk_friend_name PRIMARY KEY (name,friend_name)  -- 组合键作为主键
)ENGINE=InnoDB,CHARACTER SET 'gbk' COLLATE 'gbk_chinese_ci';


-- 存放某个用户和他的QQ群的信息
CREATE TABLE tbl_users_groups
(
    name VARCHAR(20) NOT NULL ,  
    group_name VARCHAR(20) NOT NULL,    
    CONSTRAINT pk_group_name PRIMARY KEY (name,group_name)  -- 组合键作为主键
)ENGINE=InnoDB,CHARACTER SET 'gbk' COLLATE 'gbk_chinese_ci';

-- 存放敏感词的信息
CREATE TABLE tbl_sensitive_words
(
    sensitive_word VARCHAR(30) NOT NULL PRIMARY KEY -- 主键
)ENGINE=InnoDB,CHARACTER SET 'gbk' COLLATE 'gbk_chinese_ci';

-- 超级用户数据库表
CREATE TABLE tbl_super_users
(
    super_name VARCHAR(20) NOT NULL PRIMARY KEY, -- 主键
    passwd VARCHAR(20) NOT NULL
)ENGINE=InnoDB,CHARACTER SET 'gbk' COLLATE 'gbk_chinese_ci';

INSERT INTO tbl_sensitive_words VALUES('ddd'),('ssss'),('eee');

二、在命令行下登录到mysql数据库下,创建数据库。

nii@mmch:~/lanqq/code$ mysql -uroot -p  //登录到数据库
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.25-0ubuntu0.15.04.1 (Ubuntu)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE test_db;  //创建数据库表test_db
Query OK, 1 row affected (0.42 sec)

mysql> USE test_db;   //默认数据库更改为test_db
Database changed
mysql> source /home/nii/code/qq.sql;  //导入qq.sql文件
Query OK, 0 rows affected (0.32 sec)

Query OK, 0 rows affected (0.09 sec)

Query OK, 0 rows affected (0.09 sec)

Query OK, 0 rows affected (0.12 sec)

Query OK, 0 rows affected (0.09 sec)

Query OK, 0 rows affected (0.02 sec)  //导入成功

三、查看数据库是否导入成功。

mysql> SHOW TABLES FROM test_db;   //查看数据库下面所有的数据库表
+---------------------+
| Tables_in_test_db   |
+---------------------+
| tbl_del_users       |
| tbl_gag_users       |
| tbl_register_users  |
| tbl_sensitive_words |
| tbl_users_friends   |
| tbl_users_groups    |
+---------------------+
6 rows in set (0.00 sec)
mysql> DESC  tbl_register_users;  //查看tbl_register_users数据库表结构
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| name      | varchar(20) | NO   | PRI | NULL    |       |
| passwd    | varchar(20) | NO   |     | NULL    |       |
| socketfd  | int(11)     | NO   |     | NULL    |       |
| is_online | tinyint(4)  | NO   |     | NULL    |       |
| is_used   | tinyint(4)  | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+

你可能感兴趣的:(数据库)