希望你开心,希望你健康,希望你幸福,希望你点赞!
最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!!
喵喵喵,你对我真的很重要!
目录
媒介
创建与管理数据库
创建库
检察与打开数据库
修改数据库
删除数据库
创建与管理表
创建表
检察表
复制表
总结
媒介
本使命将学习创建和管理数据库、创建和管理表以及表数据操作的基本方法和技巧。在使命实施过程中,要特别注意表的规范化,要注意数据范例的精确选择,还要注意数据库和数据表字符集的同一题目。S学校要创建一个教学管理系统。根据需求分析,要求创建学生、课程、教师和系部等数据表来存储数据。接下来,要创建数据库,设计数据表的结构,并初始化相干表数据。
创建与管理数据库
创建库
利用 CREATE DATABASE 或 CREATE SCHEMA 命令可以创建数据库,其语法结构如下。 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name。
[DEFAULT] CHARACTER SET charset_name。
| [DEFAULT] COLLATE collation_name。
注:SCHEMA 概要,筹划,图表。数据库中的Schema,为数据库对象的聚集,一个用户一样平常对应一个schema。
创建数据库。 mysql> CREATE DATABASE [IF NOT EXISTS] JXGL;
• 创建数据库 CPXS 库,并指定字符集为 utf8 。 mysql> CREATE DATABASE CPXS
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci。
DEFAULT CHARACTER SET :指定命据库的默认字符集( Charset ), charset_name 为字符集名称。 COLLATE :指定字符集的校对规则, collation_name 为校对规则名称。 创建数据库时 最好指定字符集 。如果指定了,在其内部创建的表、表中的字段都将继承利用这个字符集。若没有指定,则会继承利用服务器级的字符集。 IF NOT EXISTS :如果指定了已有的数据库名,会出现错误信息。 IF NOT EXISTS 可防止同名,且不报错。 检察与打开数据库
检察本服务器中的全部数据库 mysql> SHOW DATABASES;
打开或选定命据库 创建了数据库并不表示选定并利用它,必须明确地操作。为了使JXGL成为当前的数据库,利用如下命令。
mysql> USE JXGL;
检察当前正在利用的数据库名称。 mysql> select database();
修改数据库
数据库创建后,如果需要修改数据库的参数,可以利用 ALTER DATABASE 命令。语法类似创建: ALTER {DATABASE | SCHEMA} [db_name]
[DEFAULT] CHARACTER SET charset_name
| [DEFAULT] COLLATE collation_name
将 JXGL 库修改字符集为 utf8 ,校对原则为 utf8_general_ci mysql>ALTER DATABASE JXGL DEFAULT
CHARACTER SET utf8
COLLATE utf8_general_ci
删除数据库
已经创建的数据库,如果需要删除,可利用 DROP DATABASE 命令。语法格式:
DROP DATABASE [IF EXISTS] db_name
删除 YGGL 库。 mysql> DROP DATABASE YGGL;
注: 删除了数据库,数据库里的全部表也同时被删除。因此,最好先对数据库做好备份,然后再实行删除操作。
创建与管理表
数据库创建之后,数据库是空的,是没有表的,可以打开数据库检察。 mysql> USE JXGL;
mysql> SHOW TABLES;
表决定了数据库的结构, 表是存放数据的地方,一个库需要什么表,各数据库表中有什么样的列,是要合理设计的。 创建表
创建表的语法如下: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table_name
[ ( [column_definition] , ... | [index_definition] ) ]
[table_option] [select_statement];
其中: column_definition col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] [COMMENT 'string'] [reference_definition]
学生管理系统( JXGL ),在这个库中要设计 6 张表。 students( 学生信息表 ) course (课程表) score (结果表) departments (院系单位表) teachers (教师表) teach (教学表) student course score department teacher teach - //创建表teachers
- mysql> CREATE TABLE IF NOT EXISTS teachers
- (
- T_NO char(8) NOT NULL COMMENT '教师编号',
- T_NAME char(8) NOT NULL COMMENT'教师姓名',
- D_NO char(8) NOT NULL COMMENT '院系编号',
- PRIMARY KEY (T_NO)
- )
- ENGINE=InnoDB DEFAULT CHARSET=utf8;
复制代码- //创建表departments。
- mysql> CREATE TABLE IF NOT EXISTS departments
- (
- D_NO char(8) NOT NULL COMMENT '院系编号',
- D_NAME char(8) NOT NULL COMMENT '院系名称',
- PRIMARY KEY (D_NO)
- )
- ENGINE=InnoDB DEFAULT CHARSET=utf8;
复制代码- //创建表STUDENTS。
- mysql> CREATE TABLE IF NOT EXISTS STUDENTS
- (
- s_no char(4) NOT NULL COMMEN'学号',
- s_name char(4) NOT NULL COMMENT'姓名',
- sex ENUM('男', '女') DEFAULT '男' COMMENT '性别',
- birthday date NOT NULL COMMENT'出生日期',
- d_no varchar (4) NOT NULL COMMENT'所在系部',
- address varchar(20) NOT NULL COMMENT'家庭地址',
- phone varchar(12) NOT NULL COMMENT'联系电话',
- photo blob COMMENT'照片',
- PRIMARY KEY (s_no)
- )
- ENGINE=InnoDB DEFAULT CHARSET=utf8;
复制代码 关于设置主键。 PRIMARY KEY 表示设置该字段为主键。如在 STUDENTS 表中, PRIMARY KEY ( s_no ) 表示将 s_no 字段定义为主键。 在 score 表中, PRIMARY KEY ( s_no,c_no ) 表示把 s_no 、 c_no 两个字段一起作为复合主键。 添加注释。 COMMENT' 学号 ' 表示对“ s_no ”字段增加注释为“学号”。 字段范例的选择。 SEX ENUM(' 男 ' , ' 女 ') 表示 sex 字段的字段范例是 ENUM ,取值范围为 ' 男 ' 和 ' 女 ' 。 默认值的设置。DEFAULT‘男’表示默认值为“男”。 设置精度。Score表中的report float(5,1)表示精度为6 ,小数位1位。 “ENGINE=InnoDB”表示接纳的存储引擎是InnoDB,InnoDB是MySQL在Windows平台默认的存储引擎,所以“ENGINE=InnoDB”可以省略。 DEFAULT CHARSET=utf8表示表的字符集是utf8。 如果没有指定是NULL或是NOT NULL,则列在创建时假定为NULL。 设置自动增量。一个整数列可以拥有一个附加属性AUTO_INCREMENT。AUTO_INCREMENT序列从一样平常1开始,也可以自定义(通过修改表语句实现)开始值。一样平常只用于主键字段。 在CPXS库中,创建进货单表,进货ID是自动增量,将进货单价列的精度设置为8 ,小数位设置为2位,进货时间默认为当前时间。 检察表
创建了数据表后,现在再用 SHOW TABLES 查询已创建的表的环境。 修改表
ALTER TABLE 用于更改原有表的结构。 可以增加或删减列、重新命名列或表,还可以修改默认字符集。 - 语法格式:
- ALTER [IGNORE] TABLE tbl_name //主句,指定要修改在表名
- alter_specification [, alter_specification] ... //子句,指定要作的修改操作
复制代码 其中: IGNORE : 是 MySQL 对 ANSI SQL92 的一个扩充,如果在表中的唯一键上有重复,它控制 ALTER TABLE 怎样工作。 如果 IGNORE 没被指定,副本被放弃而且恢复原状。 如果 IGNORE 被指定,那么对唯一键有重复的行,只有利用第一行;其余被删除。 - alter_specification:
- ADD [COLUMN] column_definition [FIRST | AFTER col_name ] //添加字段
- | ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} //修改字段默认值
- | CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name] //重命名字段
- | MODIFY [COLUMN] column_definition [FIRST | AFTER col_name] //修改字段数据类型
- | DROP [COLUMN] col_name //删除列
- | RENAME [TO] new_tbl_name //对表重命名
- | ORDER BY col_name //按字段排序
- | CONVERT TO CHARACTER SET charset_name [COLLATE collation_name] //将字符集转换为二进制
- | [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name]
- //修改表的默认字符集
复制代码 在 STUDENTS 表的 department 列后面增加一列 speciality 。 mysql> ALTER TABLE STUDENTS
ADD speciality VARCHAR(5 ) NOT NULL AFTER department;
给 STUDENTS 表的 birthday 列后增加一列“入学日期 ” ,并定义其默认值为 '2014-9-1' 。 mysql>ALTER TABLE STUDENTS
ADD 入学日期 date NOT NULL DEFAULT
'2014-9-1' AFTER birthday;
修改表 STUDENTS 的 sex 列的默认值为女。 mysql> ALTER TABLE STUDENTS CHANGE 性别 性别 char(2) NOT NULL DEFAULT '女';
删除 STUDENTS 表的入学日期列的默认值。 mysql>ALTER TABLE STUDENTS ALTER 入学日期 DROP DEFAULT;
将表 STUDENTS 重名为学生表。 mysql > ALTER TABLE STUDENTS rename to 学生表 ; 修改 course 表的字符集为 utf8 。 ALTER TABLE course DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 复制表
可以通过 CREATE TABLE 命令复制表的结构和数据。 语法格式: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[LIKE old_tbl_name | (LIKE old_tbl_name )] //复制表结构
| [AS (select_statement)] ; //复制表结构和数据
创建一个表 STUDENTS 的附表 STUDENTS1 。 mysql> CREATE TABLE STUDENTS1 LIKE STUDENTS;
用命令检察 STUDENTS1 的结构。 mysql> DESC STUDENTS1;
复制表 Students 的结构和数据,名为 students_copy 。 mysql> CREATE TABLE STUDENTS_COPY AS SELECT * FROM STUDENTS
总结
本使命将学习创建和管理数据库、创建和管理表以及表数据操作的基本方法和技巧。 在使命实施过程中,要特别注意 表的规范化 ,要注意 数据范例 的精确选择,还要注意 数据库和数据表字符集 的同一题目。 希望你开心,希望你健康,希望你幸福,希望你点赞!
最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!!
喵喵喵,你对我真的很重要!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |