MySQL数据库基础(笔记整理二)

创建数据库

创建数据库:首先用mysql连接服务器,以root的身份创建数据库 CREATE DATABASE database1; 任何时候都应该避免直接登录root去操作数据库。
创建数据库之后,并不意味着已经把它选定为当前的默认数据库了。你需要用 USE database1把它设置为当前默认数据库。选定数据库的另一种方法是在上一篇中提到的在启动mysql的命令行上给出数据库的名字:

$ mysql -u example -p database1

创建数据表

创建数据表,可以用CREATE TABLE语句来完成,这条语句的格式如下:

CREATE TABLE tbl_name (column_specs);
其中,tbl_name 是表名,column_specs则是该数据库里的各个数据列以及各种索引的定义。索引能够加快信息的检索速度。

CREATE TABLE customers
(     
    stu_id      int    UNSIGNED    NOT NULL     AUTO_INCREMENT,
    stu_name    char(50)  NOT NULL ,
    stu_address char(50)  NULL ,                                                
    stu_city    char(50)  NULL ,
    stu_contact char(50)  NULL ,
    stu_email   char(255) NULL ,
    stu_gradate    date    NOT NULL,
   PRIMARY KEY (stu_id)
   ) ENGINE=InnoDB;

上面就是一个创建数据表的CREATE TABLE语句,执行这条语句的方法有好几种。可以手动输入,也可以写入create1.sql脚本中通过shell输入重导向。

$ mysql -u example -p database1 < create1.sql

执行上面的命令时,需要切换到create1.sql下去执行,否则应该给出create1.sql的绝对路径。

在Linux中执行这条语句时,mysql -u example -p可以另起一个别名以此来简化输入。
当然你也可以,在连接数据库之后 source create1.sql的方式执行脚本,同样可以完成创建数据库的操作。(source 后面要跟create1.sql的绝对路径)

在上面的数据表中,大部分数据列的类型都是可变长度的字符串。只有两个数据列例外,用来保存学号的stu_id和毕业期限的stu_gradate 而数据列stu_id的值必须是唯一的。这也是为什么我们用stu_id 来作为上表的主键,而AUTO_INCREMENT当我们没有给出stu_id 列的值时,会自动生成下一个编号并赋值给这个数据列。数据表class的定义包含如下几个部分:

  • INT 表示这个数据列将用来保存整数值
  • UNSIGNED 不允许出现负数
  • NOT NULL 必须填有数据,不得为空
  • AUTO_INCREMENT 主键自增属性
  • PRIMRY KEY (stu_id) 将数据列stu_id 设为数据表主键
  • ENGINE=InnoDB 为数据表的设置InnoDB引擎(支持事物处理)

当创建完数据表后,可以用 DESCRIBE class ; 命令,查看class表相关的结构信息。 也可以用 DESC class ; 查看,DESC是DESCRIBE的简写。

DESCRIBE class;
DESC class;
EXPLAIN class;
SHOW COLUMNS FROM class;
SHOW FIELDS FROM class;

上面这几条语句实际上都是一样,显示class数据表的信息。
SHOW 还有其它更多的用法,例如:

SHOW COLUMNS FORM class LIKE '%id' ;

可以将输出内容限制为特定的数据列。

SHOW TABLES;
SHOW DATABASES;
SHOW WARNINGS;

上面都是SHOW的用法,第一条SHOW语句表示列出数据库中都有哪些数据表;第二条SHOW语句表示列出当前连接的服务器上的数据库;最后一条用于在sql语句提示warnings时,查看wanrnings信息。

扫描二维码关注公众号,回复: 3465895 查看本文章

猜你喜欢

转载自www.cnblogs.com/pulp/p/9751096.html