MYSQL 笔记
本人是一名学生,正在学习过程中,所以笔记涵盖的还不是很广,不过也算基本够用,希望以后能更加完善。
登陆数据库 mysql -h 主机名 -u 用户名 -p > mysql -u root -p 列出数据库 show databases; 选择数据库 use 数据库名; 查看当前数据库 select databases; 查看数据库定义 show create database 数据库名; 创建数据库 create databases 数据库名; default 默认约束 collate 字符序 (例 create database `test` default character set utf8 collate utf8_general_ci) 修改数据库 alter databases 数据库名; 删除数据库 drop database <数据库名>;
数据备份: 备份一个数据库: mysqldump -u username -p dbname table1 table2 ...> path/backupname.sql (dbname为数据库文件名如:word.sql,table1,table2为参数表名,当没有表名时,将备份整个数据库,path/to/your/dictionary为你要备份到什么地方的路径) 备份多个数据库 mysqldump -u username -p --databases dbname1 dbname2...> path/backupname.sql 备份所有数据库 mysqldump -u username -p --all-databases > path/backupname.sql 直接复制整个数据库目录,简单粗暴: show variables like '%datadir%'; 数据恢复 1. mysql -uusername -p dbname < path/to/your/dictionary 2.进入mysql后选择数据库 source 后面直接接路径 |
显示表 show tables; 显示数据表的属性 show columns from 数据表; 查看表的结构 desc 表名; 查看表的定义结构 show create table 表名; 创建数据表 create table table_name (column_name column_type); 默认数据 default (建表示例: create table customers( id int not null auto_increment, name char(20) not null, address char(50) null, city char(50) null, age int not null, love char(50) not null default 'no habbit', primary key(id) )engine=innodb default charset=utf8;
#引擎类型,多为engine = innodb,如果省略了engine=语句,则使用默认的引擎(myisam) #默认字符集,default charset,一般为utf8或gbk。 ) 删除数据表 drop table table_name ; 重命名数据表 rename table 表名 to 新表名 更新表(alter table 表名) 添加列 alter table 表名 add 列名 数据类型 删除列 alter table 表名 drop column 列名 修改列名 alter table 表名 change 列名 新列名 数据类型 修改列的数据类型 alter table 表名 modify 列名 数据类型 |
自动编号(必须与主键组合使用) auto_increment 主键(主键保证记录的唯一性,主键自动为not null) primary key 外键(指定该列记录属于主表中的一条记录,参照另一条数据) foreign key ( 外键:删除和更新有四种设置方式 (1)cascade:级联,当父表更新、删除,子表会同步更新和删除 (2)set null:置空,当父表更新、删除的时候,字表会把外键字段变为null,所以这个时候设计表的时候该字段要允许为null,否则会出错 (3)restrict:父表在删除和更新记录的时候,要在子表中检查是否有有关该父表要更新和删除的记录,如果有,则不允许删除个更改 (4)no action:和restrict一样 导入表时外键建立不了,查看引擎是否为innodb,(innodb支持外键和事务) 修改表的存储引擎为innodb alter table 表名 engine='innodb' ) 唯一约束(指定某列和几列组合的数据不能重复) unique 非空约束(指定某列不为null) not null 默认约束 default |
插入数据 insert into 表名(列名1,列名2……)values ( 数据1,数据2……) insert into 表名 values (数据1,数据2……) 批量插入 insert into 表名 values (数据1,数据2……),(数据1,数据2……),(数据1,数据2……) 删除数据 delete from 表名 [where 条件] (没有条件则删除整个表) truncate table 表名:先删除表再重建表 (删除表) 更新数据 update 表名 set 列名=值,列名=值 [where 条件]; 查询数据 select[distinct][*][列名1,列名2] from 表名 where 条件 group by…… having 条件过滤 order by 排序; |
|
去重 distinct 限制结果 limit 完全限制表名 表名+. 排序(order by) asc:ascend 升序(默认) desc:descend 降序 分组 group by 合并结果 union 过滤数据 |
|
where子句 = 等于 <> 不等于 != 不等于 < 小于 <= 小于等于 > 大于 >= 大于等于 between……and…… 指定两个值之间 is null 为空值 and 两个条件同时满足 or 满足其中一条 (and 和 or 可以组合使用,and优先级高于or) in 指定条件范围 (例 in(1002,1003)) not 否定后跟条件关键字 ====> not in,not like... 分组数据 |
group by 分组数据 having 过滤分组 < having和where的区别 having 与where使用方式类似,在分组之后使用 where是判断数据从磁盘读入内存的时候 having是判断分组统计之前的所有条件 having子句中可以使用字段别名,而where不能使用 having能够使用统计函数,但是where不能使用 > |
|
|
元字符 换页 换行 回车 制表 纵向制表 |
字符类 [:alnum:] 文字数字字符 [:alpha:] 文字字符 [:blank:] 空白字符 [:cntrl:] 控制字符 [:digit:] 数字字符 [:graph:] 图形字符 [:lower:] 小写文字字符 [:print:] 图形或空格字符 [:punct:] 标点字符 [:space:] 空格、制表符、新行、和回车 [:upper:] 大写文字字符 [:xdigit:] 十六进制数字字符 (^)字符 匹配字符串的开始位置,如“^a”表示以字母a开头的字符串。 ($)字符 匹配字符串的结束位置,如“x$”表示以字母x结尾的字符串。 (.)字符 这个字符就是英文下的点,它匹配任何一个字符,包括回车、换行等。 [[:<:]] 词的开始 [[:>:]] 词的结尾 |
重复字符 (*)字符 星号匹配0个或多个字符,在它之前必须有内容。如: (+)字符 加号匹配1个或多个字符,在它之前也必须有内容。加号跟星号的用法类似,只是星号允许出现0次,加号则必须至少出现一次。 (?)字符 问号匹配0次或1次。 {} 区间 {n} 指定数目的匹配 {n,} 不少于指定数目的匹配 {n,m} 匹配数目的范围(m不超过255) 这是一个更全面的方法,它可以实现前面好几种保留字的功能 a*可以写成a{0,} a+可以写成a{1,} a?可以写成a{0,1} 计算字段 + 加 - 减 * 乘 / 除 (select后可以跟计算公式) |
concat() 拼接字段 (例 mysql> select concat(’my’, ‘s’, ‘ql’); ---> ‘mysql’) 函数 |
聚集函数 avg() 返回某列的平均值 count() 返回某列的行数 max() 返回某列的最大值 min() 返回某列的最小值 sum() 返回某列值之和 |
连接 inner join(内连接,或等值连接):获取两个表中字段匹配关系的记录。 left join(左连接):获取左表所有记录,即使右表没有对应匹配的记录。 right join(右连接): 与 left join 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。 |
|
视图(视图是虚拟表,本身不存储数据,而是按照指定的方式进行查询。) -- 1.创建视图 create view 视图名 as sql语句; --2.删除视图 drop view 视图名; --3.修改视图 alter view 视图名称 as sql语句 |
|
上一篇: powershell操作word详解
下一篇: ruby 存取器 概念