CREATE table `kecheng`(
k_id int,
day VARCHAR(20) not null DEFAULT '',
k_name VARCHAR(20) not null DEFAULT '',
morning VARCHAR(20) ,
afternoon VARCHAR(20),
PRIMARY KEY (`k_id`)
)
INSERT into kecheng VALUES(1,'周一','语文','有课','有课');
INSERT into kecheng VALUES(2,'周一','数学',NULL,'有课');
INSERT into kecheng VALUES(3,'周三','语文','有课','有课');
INSERT into kecheng VALUES(4,'周三','数学',NULL,'有课');
INSERT into kecheng VALUES(5,'周三','英语',NULL,'有课');
INSERT into kecheng VALUES(6,'周五','英语',NULL,NULL);
union all:不去重,将2个表连接起来
union:去重,将2个表连接起来
1.查询当前所有数据库:show DATABASEs
2.打开指定的库:use+ 库名
3.查看当前库的所有表:show TABLES
4.查看其它库的所有表:show TABLES from 库名
5.创建表:
CREATE table 表名(
列名 列类型,
列名 列类型,
....
PRIMARY KEY (`列名`)
)
6.查看表结构:DESC 表名
7.查看服务器版本:
方式1:登入到MySQL:SELECT VERSION()
方式2:MySQL--version
CREATE DATABASE 数据库名
删除数据库:drop database <数据库名>
语法规范
1.不区分大小写,但建议关键字大写,表明,列名小写
2.每条命令用分号结尾
3.每条命令很长的话,分行写
4.注释:单行注释:#注释文字
-- 注释文字
多行注释:/*注释文字 */
创建 MySql 的表时,表名和字段名外面的符号 ` 不是单引号,而是英文输入法状态下的反单引号,也就是键盘左上角 esc 按键下面的那一个 ~ 按键,坑惨了。
反引号是为了区分 MySql 关键字与普通字符而引入的符号,一般的,表名与字段名都使用反引号。
select * : 返回所有记录
limit N : 返回 N 条记录
offset M : 跳过 M 条记录, 默认 M=0, 单独使用似乎不起作用
limit N,M : 相当于 limit M offset N , 从第 N 条记录开始, 返回 M 条记录
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
解析:LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。
mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15
//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.
//如果只给定一个参数,它表示返回最大的记录行数目:
mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行
//换句话说,LIMIT n 等价于 LIMIT 0,n
为了处理这种情况,MySQL提供了三大运算符:
IS NULL: 当列的值是 NULL,此运算符返回 true。
IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
<=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true。
关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。
在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 NULL,即 NULL = NULL 返回 NULL 。
MySQL 中处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。