`name` 这个符号不是引号,而是着重号,着重号的意义在于明确其中的内容是字段名,尤其是当字段名与关键字重合的情况下;
在MySQL中,“+”不能作为连接符,只能作为计算符号,将数值型数据进行加法计算,如果有字符型数据,则试图将其转化为数值型,若转化失败,则表示为0,如果出现“null”则相加后的结果就为“null”("null"和任何数据拼接后也为“null”);
desc + 表名 表示查询表的内部结构,即各个字段的类型,null,约束情况;
ifnull函数判断数据是否为空,ifnull(expr1,expr2),expr1为需要进行测试的字段名,expr2表示若相应字段的数据为“null”的返回值;
create table a1 like a 可以创建一个和原本的表结构一致的新表,可在数据分页前使用;
limit可用于数据分页,当原始数据量过大需要进行拆分时,可以通过limit选取一定的的数据量,需要注意的是:当选取到最后一行数据时,若是不确定具体有多少条数据,可以选取一个足够大的量;
where 条件筛选有一下几种方式:①按照条件表达式筛选,即> < = != <>(表示不等于时推荐使用) >= <= ②按照逻辑表达式筛选,即and or not ③模糊查询,即like、between and、in、is null 等;
当在查询时筛选条件中含有特殊符号是可以通过转义来解决,一般地转义符号为"\",也可以自己定义转义符号,例如 select Sname from Student where Sname like '_$_%' escape '$' 这是这个符号即为转义符号,而后面的'_'则是需要查询的特殊字符;
between a and b ,这种情况下a和b都包含在里面;
<=> 安全等于 符号,可以在一定情况下替换“is” 既可以用来判断 null 值,也可以用来判断普通数值,但是相对来说可读性比“is”要差,实际应用并不推荐;
elect * from A 和 select * from A where 字段1 like '%%' and 字段2 like '%%' 这两种查询模式出来的结果并不相等,因为在第二种情况下Null 被忽略了;
MySQL的登录与登出(命令行方法):用管理员身份(必要)打开命令提示符,输入mysql -h localhost -P 3306 -u root -p********,其中localhost代表本机,3306代表端口号,root即为用户,后面的“******”代表密码,这里面需要注意的是,如果密码与-p在同一行输入的话,中间不能留有空格,如果不在同一行输入,可以回车后输入,这种情况下输入的密码不会在屏幕中明示出来;
常用字符函数length(expr) :获取参数的字节个数(在utf8编码下一个汉字三个字节,在gbk编码下一个汉字两个自己,单词都是一个字节)注意这个函数是计算字节数,一般函数都是计算字符数;
concat(expr1,expr2,...):拼接字符串;
upper(expr):大写字符串;
lower(expr):小写字符串;
substr(str,pos):str代表要截取的字符串,pos表示位置(索引是从1开始的)只有一个位置参数时,是指从指定索引后的所有字符,如果有两个位置参数,截取从指定索引处指定长度的字符;
交叉连接实际上就是笛卡尔积(99语法下);
整型数值默认是有符号状态,可以用unsigned关键字设置为无符号状态;
整型数值存在默认长度(int 无符号默认10),代表显示的数值长度(不是数值大小范围),搭配关键字zerofill 可以对数字不够的位数左侧填充0;
约束分为列级约束和表级约束。在修改表时添加列级约束使用的语法为:alter table 表名 modify column 列名 数据类型 约束类型;
添加表级约束使用的语法为:alter table 表名add constraint 约束名 约束类型(字段名)
在设置事务前,要先关闭自动提交功能,具体方法为:set autocommit=0(该项关闭只针对当前事务有效);
mysql 的auto_increment 可以对字段进行自增长,其中变量auto_increment_increment 代表步长,auto_increment_offset代表起始值,可以通过对变量的设置控制自增长列的数值;
变量可以分为系统变量和自定义变量,其中系统变量包括全局变量(global)和会话变量(session默认),而自定义变量包括用户变量和局部变量;
循环结构:while 是先判断后执行,repeat是先执行后判断(无条件执行一次),loop是没有条件的死循环,跳出循环需要搭配leave语句使用。循环结构只能放到begin end 里面。