MySQL 必知必会 读书笔记 第三章 (使用MySQL)
关于sql语句的大小写问题,本身是不区分大小写的,但是为了便于阅读,关键字最好还是全采用大写的形式。
但是 标识符(数据库名,表名。。)是区分大小写的
第三章 (使用MySQL)
连接MySQl
mysql -u 用户名 -p 密码 # -u 指用户名 -p 指密码, 应该还可以设置其他信息吧
show database; # 显示所有的数据库
use 数据库名称; #打开某数据库
show
show tables; # 显示数据库中所有表
show columns from 表名; # 显示该表的表列
显示了表列的字段,与之对应的数据类型,值是否可以为NULL,键信息(该列是否为主键或其他键),默认值( ?? ),以及其他信息(extra)
关于cust_id表列的其他信息 auto_increment, 是自动增量的意思,因为该表列为主键,是以id的形式来设置的,通过设置 auto_increment 就可以在添加行的时候自动的为每个行分配id了。
show status; # 显示服务器状态信息
show create database 数据库名; # 显示创建数据库的MySQL语句
show create table 表名; # 显示创建表的MySQL语句
show grants for 用户名@host名; # 显示用户的权限
show errors; # 显示报错信息
第四章(检索数据)
SELECT是用的最多的sql语句了
SELECT 检索表列
SELECT 列名1,列名2,.. FROM 表名 # 列名间用逗号分割
SELECT * FROM 表名 # 使用通配符(*)检索所有列 (不推荐使用)
检索不同 的行
在检索有些表列的时候,重复项很多,若只想要不同的值的话就需要使用DISTINCT关键字
SELECT DISTINCT 列名 FROM表名;
SELECT vend_id FROM products;
SELECT DISTINCT vend_id FROM products;
但是,在检索多个表列的时候,使用DISTINCT关键字是会对所有表列起作用的
比如:
SELECT DISTINCT vend_id,prod_price FROM products;
是会保证每个表列的值显示完全的前提下,再去考虑不重复的,在此例中,vend_id只有5个值,而prod_price的值更多,所以vend_id表列就依然会显示几个重复值的。
检索部分 行
SELECT 列名 FROM 表名 LIMIT 数字; # 表示 检索前5行
SELECT 列名 FROM 表名 LIMIT 3,2 # 表示从第3行开始检索2行 //行号从0开始
SELECT 列名 FROM 表名 LIMIT 2 OFFSET 3 # 同上,这两种都可以,但这种语义更明确一些
完全限定名
like 名称空间.类.方法
数据库.表名.列名 这种完全限定的名是被允许的。