数据库的简单操作

创建数据库
CREATE DATABASE 1707DB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
查看创建好的数据库的定义
show create database 1707DB;
查看所有存在的数据库
show databases;
删除数据库
drop database dabase_name;
drop table if exists dabase_name;
创建数据表
create table s_emp(
    id int(4) not null auto_increment,
    name varchar(8) not null,
    age int(3),
    primary key (id)
);
使用主键
  • 主键,又称主码,是表中一列或多列的组合.主键约束(primary key constraint)要求主键列表唯一,并且不允许为空。主键能够唯一的标识表中的一条记录,可以结合外检来定义不同数据表之间的关系。并且可以加快数据库查询的速度。主键和记录之间的关系如同身份证和人之间的关系,他们之间是一一对应的。主键分为两种,单字段主键和多字段联合主键
  1. 单字段主键

主键由一个字段组成,SQL语句格式分为以下两种。

(1)在定义的同时制定主键,语法规则

字段名 数据类型 PRIMARY KEY[默认值]
create table tb_emp2(
   id int(11) primary key,
   name varchr(25),
   deptId int(11),
   salary float
);

(2)在定义完所有的列之后指定主键

[CONSTRAINT<约束名>]|PRIMARY KEY
create table s_emp(
    id int(4) not null auto_increment,
    name varchar(8) not null,
    age int(3),
    primary key (id)
);
  1. 多字段联合主键

主键由多个字段联合组成,语法规则如下:

PRIMARY KEY[字段1, 字段2] 

定义数据表tb_emp,假设表中没有id,为了唯一确定一个员工,可以把name、deptId联合起来作为主键

create table tb_emp4(
    name VARCHAR(25),
    deptId INT(11),
    salary FLOAT,
    PRIMARY KEY(name, deptId)
);

使用外键约束

外键用来在两个表之间建立连接,他可以是一列或者多列。一个表可以有一个或者多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空,则么一个外键值则必须等于另一个表中的主键的某个值。

外键:首先他是表中的一个字段,他可以不是本表中的主键,但对应另外一个表的主键。外键主要作用就是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有与关联的行。

创建外键的语法规则:

[CONSTRAINT<外键名>]FOREING KEY 字段名1 [,字段名2] REFERENCES<主表名> 主键列1 [,主键列2,。。。]
使用非空约束
NOT NULL
唯一约束

(1)定义完列之后直接定义约束

字段名 数据类型 UNIQUE

(2)在定义完所有列之后指定唯一约束

[CONSTRAINT<约束名>] UNIQUE(<字段名>)

==使用默认约束==

字段名 数据类型 DEFAULT 默认值

==设置表的属性值自动增加==

字段名 数据类型 ATUO_INCREMENT

默认的自增字段id的值从1开始,每次添加一条新纪录,该值就会增加1.

查看数据表结构

DESCRIBE/DESC语句可以查看表的字段信息,其中包括:字段名、字段数据类型、是否为主键、是否有默认值等。语法规则:

DESCRIBE 表名; 或者 DESC 表名;
+--------+-------------+------+-----+---------+-------+

| Field  | Type        | Null | Key | Default | Extra |

+--------+-------------+------+-----+---------+-------+

| id     | int(11)     | NO   | PRI | NULL    |       |

| name   | varchar(25) | YES  |     | NULL    |       |

| deptId | int(11)     | YES  | MUL | NULL    |       |

| salary | float       | YES  |     | NULL    |       |

+--------+-------------+------+-----+---------+-------+
  • NULL表示该列是否可以为空
  • key表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示表示该列是UNIQUE索引的一部分;MUL表示在列中某个给定值允许出现多洗
  • Default表示该列是否有默认值
  • Extra表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等

==查看表详细结构语句==

SHOW CRATE TABLE<表名\G>;

如果不加“\G”参数,显示的结果可能非常混乱,加上参数“\G"之后,可使显示结果更加直观,易于查看

修改数据表

==修改表名==

ALTER TABLE <旧表名> RENAME [TO] <新表名>;

==修改字段数据类型==

ALTER TABLE <表名> MODIFY <字段名> <数据类型>

==修改字段名==

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>

==添加字段==

ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST|AFTER 已存在的字段名];

FIRST或者AFTER已存在的字段名,用于指定新增字段在表中的位置,如果SQL语句中没有这两个参数,则默认将新增将的字段设置为数据表的最后列

==删除字段==

ALTER TABLE <表名> DROP <字段名>

==修改字段的排列位置==

ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST|AFTER <字段2>

==更改存储引擎==

ALTER <表名> ENGINE=<更改后的存储引擎名>

==删除表的外键约束==

ALTER TABLE <表名> DROP FOREIGN KEY <外键约束>

==删除没有关联的表==

DROP TABLE [IF EXISTS] 表1,表2.。。

数据类型和运算符

数据类型 说明 存储需求 有符号 无符号
TINYINT 很小的整数 1个字节 -128~127 0~255
SMALLINT 小的整数 2个字节 -32768~32767 0~65535
MEDIUMINT 中等大小的整数 3个字节 -8388608~8388607 0~16777215
INT(INTEGER) 普通大小的整数 4个字节 -2147482648~2147483647 0~4294967295
BIGINT 极大整数值 8个字节 -9233 372036854775808~9223372036 854775807 0~18446744073709551615
FLOAT 单精度浮点数 4个字节 -3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38)
DOUBLE 双精度浮点 8个字节 -1.797 693 134 862 315 7 E+308 ~2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E-308 0 和 2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308

日期和时间

类型 大小(字节) 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

字符串数据类型

数据类型 说明 存储需求
CHAR(M) 固定长度非二进制字符串 M字节,1<=M<=255
VARCHAR(M) 边长非二进制数字 L+1字节,在此L<=M和1<=M<=255
TINYTEXT 非常小的非二进制字符串 L+1字节,在此L<2^8
TEXT 小的非二进制字符串 L+2字节,在此L<2^16
LONGTEXT 大的非二进制字符串 L+4字节,在此L<2^32

你可能感兴趣的:(数据库的简单操作)