SQL语句实例详解 方便学习mysql的朋友
发布时间:2021-12-03 19:24:48 所属栏目:教程 来源:互联网
导读:MySQL中模式就是数据库 SHOW DATABASES; show databases; 罗列所有数据库名称 CREATE DATABASE 数据库名 create database TEST; 创建名为TEST的数据库 DROP DATABASE 数据库名 drop database TEST; 删除名为TEST的数据库 USE 数据库名 use TEST; 使用名为TES
MySQL中模式就是数据库 SHOW DATABASES; show databases; 罗列所有数据库名称 CREATE DATABASE <数据库名> create database TEST; 创建名为TEST的数据库 DROP DATABASE <数据库名> drop database TEST; 删除名为TEST的数据库 USE <数据库名> use TEST; 使用名为TEST的数据库 SHOW TABLES show tables; 显示当前数据库所有表格 SHOW [FULL] COLUMNS FROM <表名> show [full] columns from <表名> 在MySQL数据库中显示表的结构,如果加上full则更加详细 DESC <表名> desc TEST; 查看表TEST的结构,同show columns from TEST SHOW CREATE TABLE <表名> show create table TEST; 查看表TEST的所有信息,包括建表语句 创建基本表: CREATE TABLE <表名> (<列名> <数据类型>[列级完整性约束条件], <列名> <数据类型>[列级完整性约束条件], ……………… ); create table STUDENT ( studentId int(30) primary key, name varchar(255), address varchar(255) ); 创建名为STUDENT的表格,有属性studentId,name,address,其中studentId为主键 create table TEACHER ( teacherId int(30), name varchar(255), age int(20), studentId int(30), primary key (teacherId), foreign key (studentId) references STUDENT(studentId) ); 创建名为TEACHER的表格,其中teacherId为主键,studentId为外键,引用STUDENT表的主键studentId 修改基本表: ALTER TABLE <表名> RENAME <修改后表名> alter table TEACHER rename S; 将TEACHER表的表名改为S ALTER TABLE <表名> ADD COLUMN <列名> <属性类型> alter table TEACHER add column ADDRESS varchar(255); 在表名为TEACHER的表中加入名为ADDRESS的列 ALTER TABLE <表名> CHANGE COLUMN <列名> <修改后列名> <属性类型> alter table TEACHER change column ADDRESS address varchar(230); 修改TEACHER表中的列,将ADDRESS的列名改为address ALTER TABLE <表名> DROP [COLUMN] <列名> alter table TEACHER drop [column] address; 删除列名为address的列,column可有可无 删除基本表: DROP TABLE <表名> [RESTRICT|CASCADE] 删除表格 drop table STUDENT restrict; 删除STUDENT表。受限制的删除,欲删除的基本表不能被其他表的约束所引用(如check,foreign key等约束), 不能有视图,不能有触发器,不能有存储过程或函数等。 drop table STUDENT cascade; 若选择cascade,则该表删除没有限制。在删除基本表的同时,相关的依赖对象,例如视图,都将被一起删除。 但是我在MySQL测试的时候给错误提示Cannot delete or update a parent row: a foreign key constraint fails,不予以删除,不知道是什么原因。 关于完整约束性: 参考文章:完整性约束的SQL定义 ALTER TABLE <表名> ADD CONSTRAINT <约束名> <约束条件> alter table teacher add constraint pk_teacher_id primary key teacher(id); 在teacher表中增加名为pk_teacher_id的主键约束。 ALTER TABLE <表名> DROP <约束条件> alter table teacher drop primary key; 删除teacher表的主键约束。 alter table student add constraint fk_student_teacher foreign key student(teacherId) references teacher(id); 在student表中增加名为fk_student_teacher的约束条件,约束条件为外键约束。 索引的建立与删除: 索引的建立: CREATE [UNIQUE]|[CLUSTER] INDEX <索引名> ON <表名>(<列名> [次序][,<列名> [次序]]……); UNIQUE 表明此索引的每一个索引值只对应唯一的数据记录。 CLUSTER 表示要建立的索引是聚簇索引。 create unique index id_index on teacher(id asc); 对teacher表的id列建立unique索引,索引名为id_index 索引的删除: DROP INDEX <索引名> ON <表名> drop index id_index on teacher; 在teacher表中删除索引,索引名为id_index 另外的方法: 新建索引: ALTER TABLE <表名> ADD [UNIQUE]|[CLUSTER] INDEX [<索引名>](<列名> [<次序>],[<列名> [<次序>]]……) alter table teacher add unique index id_index(id asc); 在teacher表中对id列升序建立unique索引,索引的名字为id_index 删除索引: ALTER TABLE <表名> DROP INDEX <索引名> alter table teacher drop index id_index; 删除teacher表名为id_index的索引 数据库索引的建立有利也有弊,参考文章: 数据库索引的作用和优点缺点(一) 数据库索引的作用和优点缺点(二) 数据库建立索引的原则 数据查询: SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式>]…… FROM <表名或视图名> [<表名或视图名>]…… [WHERE <条件表达式>] [GROUP BY <列名1> [HAVING <条件表达式>]] [ORDER BY <列名2> [ASC|DESC] [,<列名3> [ASC|DESC]]……]; 查询经过计算的值: select teacherId as id,salary - 100 as S from teacher; 查询经过计算的值,从teacher表中查询出teacherId字段,别名为id,并且查询出salary字段减去100后的字段,别名为S 使用函数和字符串: select teacherid as id,'birth',salary - 20 as SA, lower(name) from teacher; <目标表达式>可以是字符串常量和函数等,'birth' 为字符串常量,lower(name)为函数,将name字段以小写字母形式输出 消除取值重复的行: select distinct name from teacher; 如果没有指定DISTINCT关键词,则缺省为ALL. 查询满足条件的元组: WHERE子句常用的查询条件: 查询条件 谓词 比较 =, >, <, >=, <=, !=, <>, !>, !< 确定范围 BETWEEN AND, NOT BETWEEN AND 确定集合 IN, NOT IN 字符匹配 LIKE, NOT LIKE 空值 IS NULL, IS NOT NULL ![]() (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |