关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

【收藏级】MySQL 100条命令,基本操作的所有内容(常看常新)(二)

发布时间:2023-06-30 18:00:39
七、数据查询 7.1、单表查询 1、语法:select <[列名1,列名n 或通配符 [as 别名] ]> from 表名; as:将某个字段取个别名 2、语法:select distinct <[列名1,列名n 或通配符]> from 表名; 去掉重复项,对应的字段前加 符号表达: 7.1.1、where常用关键字 AND、OR:连接多个条件BETWEEN AND:在…之间IS NULL:查询空值IN:查询在某个集中中LIKE:模糊查询 7.1.2、通配符 ”*“通配符:匹配任意列名 “_"通配符:匹配单个字符 “%”通配符:匹配任意字符 7.1.3、order by子句 可以使用order by子句对查询结果安装一个或多个属性列(多个属性逗号隔开)的升序(ASC)或降序(DESC)排列,默认为升序。 --查询结果按照bookPrice列值的降序排列 select * from books order by bookPrice desc; 7.1.4、聚集函数 例: #查询book表中年龄最大的 select max(age) from book; 7.1.5、group by子句 将查询结果按某一列或多列的值分组,值相等的为一组。 select count(*),pressName from books group by pressName; 如:下列表中,叫 “人民邮电出版社” 名字的有1个,叫 ”清华大学出版社“ 的有6个。 7.2、连接查询 根据两个表或多个表的列之间的关系来查询数据,即连接查询。 7.2.1、简单连接 连接查询实际是通过表与表之间相互关联的列进行数据的查询,对于关系数据库来说,连接是查询最主要的特征。 简单连接使用逗号将两个或多个表进行连接,也是最常用的多表查询形式。 例: select b.reader_id,br.book_name from books b,borrow_record br where b.ISBN=br.ISBN; 7.2.2、JOIN连接 除了使用逗号连接外,也可使用JOIN连接。 7.2.2.1、内连接(inner join) 1)等值连接 select * from books b inner join borrow_record br where b.ISBN=br.ISBN; 2)不等连接 select * from books b inner join borrow_record br where b.ISBN<>br.ISBN; 7.2.2.2、外连接(left join 、right join) 1)左连接 on后面也可使用 where执行条件判断 select * from books b left join borrow_record br on b.ISBN=br.ISBN; 2)右连接 on后面也可使用 where执行条件判断 select * from books b right join borrow_record br on b.ISBN=br.ISBN; 7.3、嵌套查询 SQL语言中,一个select-from-where语句被称为一个查询块。将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询被称为嵌套查询。 语法:select <字段名或通配符> from <表或视图名> where [表达式] (select <字段名或通配符> from <表或视图名> where [表达式] ) 7.3.1、带有IN谓语的子查询 select * from books where isbn in (select * isbn from brrowrecord where reader_id='201801'); 7.3.2、带有比较运算符的子查询 指父查询与子查询之间用比较运算符连接。可以用 >、<、=、>=、<=、!=、<> 等比较运算符。 select * from books where isbn=(select * isbn from brrowrecord where reader_id='201801'); 7.3.3、带有ANY(SOME)或ALL谓语子查询 子查询返回值单值时可以用比较运算符,但返回多值时要用ANY(有的系统用SOME)或ALL谓语,使用ANY或ALL谓语时必须同时使用比较运算符。 谓语释义: 例: #查询读者编号为"201801"的学生未借阅的所有图书的详细信息; select * from books where isbn <> all(select isbn from brrowwrecord where reader_id="201801"); 7.3.4、带有EXISTS谓语的子查询 EXISTS谓语的子查询不返回任何数据,是一个布尔值(true或false)逻辑判断。使用存在量词EXISTS后,若内层查询结果为空,则外层的WHERE子句返回ture,否则取反。 例: #查询读者编号为201801的读者没有借阅过的图书信息 select * from books where not exists (select * from borrowrecord where isbn=books.isbn and reader_id="201801"); 7.4、合并查询 #两个表字段合并显示,两个表相同字段合并后显示一次 select * from t_major1 union select * from t_major; 八、索引 索引是为了加速对表中数据行的检索而创建的一种分散的存储结构。 8.1、为已经创建好的表建立索引 1)用CREATE INDEX方法在已经创建好的表 t_student 上为其字段名 stu_id 创建普通降序索引。 语法:create [unique | fulltext] index index_name on table_name(co_name ase|desc , [co_name ase|desc] ) #多字段索引使用逗号(,)隔开 create index index_student on t_student(stu_id desc) 2)用ALTER TABLE…ADD INDEX方法为表t_course的字段列course_name 创建全文索引。 语法:alter table table_name add [unique | fulltext] index index_name(co_name ase|desc , [co_name ase|desc] ) #多字段索引使用逗号(,)隔开 alter table t_course add fulltext index index_course_name(course_name) 8.2、创建新表时创建索引 创建表 t_teacher2,与 t_teacher 结构一致(不能复制表结构),在创建表的过程中创建索引,为 teacher_id 创建一个唯一升序索引。 create table t_teacher2(teacher_id char(10),teacher_name char(50),index index_tea_id(teacher_id asc));

/template/Home/leiyu/PC/Static