一、准备.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 | |
+-----------+-------------+------+-----+---------+-------+