MySQL教程之数据库、数据表的基本操作及查询数据
发布时间:2022-08-10 09:52:52 所属栏目:MySql教程 来源:互联网
导读:数据库的基本操作 创建数据库 CREATE DATABASE database_name database_name为要创建的数据库的名称 删除数据库 DROP DATABASE database_name database_name为要删除的数据库的名称 数据库存储引擎 数据库存储引擎是数据库底层软件组成,数据库管理系统(DBMS
数据库的基本操作 创建数据库 CREATE DATABASE database_name database_name为要创建的数据库的名称 删除数据库 DROP DATABASE database_name database_name为要删除的数据库的名称 数据库存储引擎 数据库存储引擎是数据库底层软件组成,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据操作。 MySQL的核心就是存储引擎。 存储引擎比较 |功能|MyISAM|Memory|InnoDB|Archive| |---|---|---|---|---| |存储限制|256TB|RAM|64TB|None| |支持事务|No|No|Yes|No| |支持全文索引|Yes|No|No|No| |支持数索引|Yes|Yes|Yes|No| |支持哈希索引|No|Yes|No|No| |支持数据缓存|No|N/A|Yes|No| |支持外键|No|No|Yes|No| 数据表的基本操作 创建数据表 创建表的语法形式 SQL CREATE TABLE<表名> ( 字段名1 数据类型 [列级别约束条件] [默认值], 字段名2 数据类型 [列级别约束条件] [默认值], …… [表级别约束条件] ); 使用主键约束 主键约束要求主键列的数据唯一,并且不允许为空。他能唯一地标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。 单字段主键 在定义列的同时指定主键。 字段名 数据类型 PRIMARY KEY [默认值] 在定义完所有列之后指定主键。 [CONSTRAINT <约束名>] PRIMARY KEY [字段名] 多字段联合主键 主键由多个字段联合组合而成。 PRIMARY KEY [字段1、字段2...] 其位置放置在定义完所有的主键之后 使用外键约束 外键用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。 [CONSTRAINT<外键名>] FOREIGN KEY 字段1[,字段2...] REFERENCES<主表名> 主键列1[,主键列2...] 使用非空约束 非空约束指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。 字段名 数据类型 NOT NULL 使用唯一性约束 唯一性约束要求该列唯一,允许为空,但只能出现一个空值。 唯一约束可以确保一列或者几列不出现重复值。 在定义完列之后直接指定唯一约束。字段名 数据类型 UNIQUE 在定义完所有列之后指定唯一约束。[CONSTRAINT<约束名>] UNIQUE(<字段名>) 使用默认约束 默认约束指定某列的默认值。 字段名 数据类型 DEFAULT 默认值 设置表的属性值自动增加 在数据库应用中,可以通过为表的主键添加 AUTO_INCREMENT关键字来实现:当每新增加一条记录,使该主键自动加一。一个表只能有一个字段使用 AUTO_INCREMENT约束,且该字段必须为主键的一部分。其约束的字段可以是任何整数类型。 字段名 数据类型 AUTO_INCREMENT 查看数据表结构 查看表基本结构语句 DESCRIBE 表名; 或者简写为 DESC 表名; 查看表详细结构语句 SHOW CREATE TABLE <表名/G>; 如果不加 /G参数,显示的结果可能非常混乱,加上参数 /G后,可使显示结果更加直观,易于查看。 修改数据表 修改表名 ALTER TABLE <旧表名> RENAME [TO] <新表名>; 修改字段的数据类型 ALTER TABLE <表名> MODIFY <字段名> <数据类型>; 修改字段名 ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>; 添加字段 ALTER TABLE <表名> ADD <新字段名> <新数据类型> [约束条件] [FIRST|AFTER 已存在字段名]; 删除字段 ALTER TABLE <表名> DROP <字段名>; 修改字段的排列位置 ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST|AFTER <字段2>; 更改表的存储引擎 ALTER TABLE <表名> ENGINE=<更改后的存储引擎名>; 删除表的外键约束 ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>; 删除数据表 DROP TABLE [IF EXISTS] 表1,表2...表n; 查询数据 基本查询语句 SELECT {*|<字段列表>} [ FROM <表1>,<表2>... [WHERE <表达式>] [GROUP BY <group by definition>] [HAVING <expression>[{<operator><expression>}...]] [ORDER BY <order by definition>] [LIMIT [offset,] <row count>] ] SELECT [字段1,字段2,...,字段n] FROM [表或视图] WHERE [查询条件]; 单表查询 查询所有字段 SELECT * FROM 表名; 查询指定字段 SELECT 字段名1[,字段名2,...,字段名n] FROM 表名; 查询指定记录 在 SELECT语句中,通过 WHERE子句可以对数据进行过滤。 SELECT 字段名1[,字段名2,...,字段名n] FROM 表名 WHERE 查询条件; 带 IN关键字的查询 IN操作符用来查询满足指定范围内的条件的记录,使用 IN操作符,将所有检索条件用括号括起来,检索条件之间用逗号隔开,只要满足条件范围内的一个值即为匹配项。 在 IN关键字前面加上 NOT即可使得查询的结果正好相反。 带 BETWEEN AND的范围查询 BETWEEN AND用来查询某个范围内的值,该操作符需要有两个参数,即范围的开始值和结束。如果字段值满足指定的范围查询条件,则这些记录被返回。 同样,在BETWEEN AND关键字前面加上 NOT即可使得查询的结果正好相反。 带 LIKE的字符匹配查询 LIKE关键字即是使用通配符来进行匹配查找。通配符是一种在SQL的 WHERE条件子句中拥有特殊意思的字符,可以和 LIKE一起使用的通配符有 %和 _。 百分号通配符 %,匹配任意长度的字符,甚至包括零字符。 下划线通配符 _ ,一次只能匹配任意一个字符。 查询空值 空值不同于0,也不同于空字符串。空值一般表示数据未知、不适用或将在以后添加数据。 在 SELECT语句中使用 IS NULL子句,可以查询某字段内容为空记录。 带 AND的多条件查询 AND主要用于 WHERE子句中,用来链接两个甚至多个查询条件,表示所有的条件都需要满足才会返回值。 带 OR的多条件查询 OR也主要用于 WHERE子句中,用来链接两个甚至多个查询条件,表示所有的条件仅需满足其中之一项便会返回值。 查询结果不重复 在 SELECT语句中,使用 DISTINCT关键字来指示MySQL消除重复的记录。 SELECT DISTINCT 字段名 FROM 表名; 对查询结果排序 用 ORDER BY语句来对查询的结果进行排序。 在后面添加 DESC表示降序排序 在后面添加 ASC或默认,表示升序排序 分组查询 在MySQL中使用 GROUP BY来对数据进行分组 [GROUP BY 字段] [HAVING <条件表达式>] [WITH ROLLUP] HAVING 关键字用来过滤数据,因为 WHERE不能和 GROUP BY混用 WITH ROLLUP关键字是在所有查询出的记录之后增加一条记录,该记录计算查询出的所有记录的总和,即统计记录数量。但是ROLLUP和能够与 GROUP BY同时使用的ORDER BY不能同时使用。 使用 LIMIT限制查询结果的数量 LIMIT [位置偏移量,] 行数 ![]() (编辑:滨州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |