数据库
对数据库的操作
-
创建数据库
在大多数RDBMS中,我们都可以使用如下简单的SQL语句,创建整个数据库:CREATE DATABASE [IF NOT EXISTs] 数据库名 [CHARACTER set 'utf8mb4'];
其中:数据库名在服务器中必须是唯一的,并且符合标识符规则。所谓标识符规则指:
-
第一个字符必须是下列字符之—:
a) Unicode标准3.0所定义的字母(Unicode中定义的字母包括拉丁字母a-z和A-Z,以及来自其它语言的字母字符)b)下划线(_)、at符号(@)或者数字符号(#)
-
后续字符可以是:
a) Unicode标准3.0所定义的字母。
b)来自基本拉丁字母或其它国家/地区脚本的十进制数字c) at符号(@)、美元符号($)、数字符号或下划线。
d)标识符不能是所用RDBMS的保留字,如create, drop, insert, delete, update, alter, select, return, use,grant, revoke等e)不允许嵌入空格或其它特殊字符。
-
UTF-8编码格式,对全球文字进行统一编码。如果只是ASCII,IS0-8859-1,ASClI码是由1byte来进行编码,1byte=8bit,表示有8个二进制位,0000 0000 ~1111 1111 对应0~ 255
-
汉卡对中文进行编码:GB2312、GBK、GB18030,在中文编码规范下,只支持ASCII+中文,但是不能支持日文等,中文编码规范由2byte = 16 bit,2416=65536,UTF-8除了ASCII码占1 byte,其他文字占3 byte = 24 bit = 2八24=16777216。
举例:
create database test character set 'utf8 ';
-
修改数据库字符集
语法结构:语法:ALTER DATABASE db_name CHARACTER SET = charset_name 例: ALTER DATABASE test CHARACTER SET = UTF8MB4;
字符集决定了数据库是否能够正常保存和显示非ASCII码字符。通常情况下,为了更好的兼容性,建议使用UTF8MB4,可以保存世界各国的文字,不会出现乱码。
-
删除数据库
DROP DATABASE 数据库名;
这是—条危险的命令,使用前,请务必确认数据库的确可以被删除。
对表的操作
-
创建表
CREATE TABLE 表名( 列名 数据类型 约束, 列名 数据类型 约束 )[ENGINE = engine_name | [DEFAULT] CHARACTER SET [=]charset_name];
其中,表名在一个数据库中必须是唯一的,并且符合标识符规则。列的数据类型决定了什么样的数据可以存储在列中,而列的约束定义了创建列时的限制条件。Mysql引擎类型有InnoDB和MyISAM两种。建议使用InnoDB,功能更加强大,但是执行效率会稍低。
-
数据字典
用于描述关系表结构和组成的字典表,通常用于数据库设计工作中,如:商品表(product) id name price date payway 主键 商品名称 价格 生产日期 付款方式 INT VARCHAR(10) INT DATETIME VARCHAR(10) PRIMARY KEY NOT NULL NOT NULL NOT NULL CHECK
常见数据类型
MySQL支持多种类型,大致可以分为三类:数值、字符串(字符)和日期/时间类型
-
数值类型
MySQL支持所有标准SQL数值数据类型类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 byte (-128,127) (0, 255) 小整数值 SMALLINT 2 bytes (-32768 , 32767) (0,65535) 大整数值 MEDIUMINT 3 bytes (-8 388 608 , 8 388 607) (0 , 16 777215) 大整数值 INT或INTEGER 4 bytes (-2147 483648,2147 483647) (0, 4 294 967 295) 大整数值 BIGINT 8 bytes (-9,223,372,036,854,775,808, 9 223372036854775807) (0,18446744 073 709 551615) 极大整数值 FLOAT 4 bytes (-3.402 823466 E+38,-1.175 494 351E-38) , o,(1.175 494 351E-38,3.402 823 466 351 E+38) 0, (1.175 494 351 E-38,3.402 823 466E+38) 单精度浮点数值 DOUBLE 8 bytes (-1.797 693134 862 3157E+308,-2.225 073858 507 201 4E- 308)o ,(2.225073858 507 201 4E-308,1.797 6931348623157 E+308) o,(2.225 073858 507 201 4 E-308 ,1.7976931348623157E+308) 双精度浮点数值 DECIMAL 对DECIMAL(M,D)如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值 -
字符类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET
类型 大小 用途 CHAR 0-255 bytes 定长字符串 VARCHAR 0-65535 bytes 变长字符串 TINYBLOB