设为首页 收藏本站
查看: 778|回复: 0

[经验分享] MySql数据库操作

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-9-22 09:10:36 | 显示全部楼层 |阅读模式
–登录MySql:——–

  Windows环境进入cmd后,输入mysql –h localhost –u root –p,再输入密码就可以启动mysql;其中localhost是mysql服务器所在的ip,如果是本机可以用localhost。

  –数据库相关操作——–

  create database db_name(数据库名称):建名为db_name的数据库

  show databases:查看已经存在的数据库

  drop database db_name:删除名为db_name的数据库

  use db_name:操作名为db_name的数据库

  show tables:显示数据库中的表

  desc table-_name:查看表名为table_name的表的结构

  – 数据库中表(TABLE)的操作——–

  Create table table_name(IDint primary key,NAME varchar(50),AGE int ,SEX varchar(10)):创建表且设置了ID为主键

  create tabletable_name(stu_id int, course_id int,name varchar(20),grade float,primarykey(stu_id,course_id)):设置了表中stu_id和course_id两个都为主键

  外键:如果表A的某一个属性值依赖于表B的主键,则称B为父表,A为子表,A中的这个字段为A的外键,如果父表中的信息改变,则对应子表的数据也会改变

  语法:create tabletable_name01(id int primary key,stu_id int,course_id int ,score float,gradeint,constraint c_fk(外键别名) foreign key(stu_id,course_id)references table_name02(stu_id,course_id));table_name02是父表,table_name01是子表,给子表设置了两个外键

  表字段的非空约束:create tabletable_name(id int primary key not null,name varchar(50) not null,stu_id int);设置not null表示字段不能为空,也就是非空

  唯一约束,指字段中值不能重复:create tabletable_name(id int primary key auto_increment,stu_id int unique,name varchar(20)not null);其中设置了id自动增加,且unique设置了stu_id的值必须唯一性,不能有相同的值存在

  E,为表设置默认值,即在没有插入数据的时候会用默认值代替;

  Create table table_name(idint primary key auto_increment,stu_id int unique,name varchar(50) not nullEnglish varchar(20) default ‘zero’);即为Englist字段设置了默认值为zero;

  show create table table_name;查看表的详细结构语句

  –表的修改操作——–

  修改表名:alter table 旧表名 rename [to] 新表名;把表名更改

  修改字段属性:Alter tabletable_name modify 属性名 数据类型(修改后的类型)

  修改字段:alter table table_namechange 旧字段名 新字段名 新数据类型

  增加字段:alter table table_nameadd 字段1 数据类型 after 字段2;在字段2后面增加字段1;如果把字段2改成FIRST即加在最前面

  删除字段:alter table table_namedrop 字段名

  修改字段的位置:alter tabletable_name modify 字段名 First(第一个位置,after 字段,指定字段的后面)

  更改表的引擎名:alter tabletable_name engine=Mylsam;

  删除表的外键约束:alter tabletable_name drop foreign key 外键别名

  删除表:

  9.1:普通的没有关联的表:drop table table_name;

  9.2:删除有关联的表:先用show create table table_name;查看表的详情,看到外键的另名,先删除外键,再删除表格就可以了。

  –数据库的增删改查操作——–

  数据库的增(insert into)删(delete)改(update)查(select)操作:

  1.添加数据insert into

  A增加数据分两种:1,不指定具体字段名如:insert into table_name values(值1,值2…)

  指定字段名:insert intotable_name(字段1,字段2….)values(值1,值2….);如果是为指定的字段加数据,只需要写出需要加数据的字段即可

  同事插入多条数据:insert intotable_name [字段列表]values(取舍列表1),(取值列表2)…

  将一个表的数据插入到别个一张表中:

  Insert into table_name1(字段列表)select (表2字段)fromtable_name2 where 条件表达式;

  2.更新数据(改)操作update

  总体操作是:update table_name set字段1=值1,字段2=值2…where条件表达式

  可以对一定范围中的数据更改,主要是从where后面的条件来判断

  3.删除数据操作delete

  delete from table_namewhere 条件表达式

  Delete from table_name;将会删除所有数据;

  4.查询数据query

  Select 字段名列表 from table_name [where 条件表达式1] [group by 字段名[having条件表达式2]][order by 字段名[ASC(升序)/DESC(降序)]]

  单表查询:select 字段名 from table_name where 条件

  带in关键字查询:

  判断某个字段的值是否在指定的集合中,是的话就查出来:select字段名或* table_name where 字段名 in(值1,值2…..)

  带between and 关键字的查询:select *或字段名 from table_name where 字段名 between 值1 and 值2;查找的是范围在值1与值2之间对应的数据;结果是包含两端的值的

  带like的匹配查询一个完整字符串,可以加%或;%表示任意长度的字符串如b%k表示以b开头,以k对事的任意字符串,而只表示单个字符,如b_k表示以b开始k结束的3个字符的字符串

  方法:select *或字段名 from table_name where 字段名 [not]like 条件;not表示不匹配时

  -空值查询: select *或字段名 from table_name where 字段名 is [not]null;即查询[不]为空的数据

  and与or的多条件查询:select *或字段名 from table_name where 条件1 and 条件2;与 from table_name where 条件1 and 条件2;and表示所以条件都必须成立,而or表示只需要其中任何一个条件成立就可以

  F,查询结果不重复:select distinct 字段名 from table_name;

  5.分组查询

  单独用group by 分组,结果只会显示一个分组的一条记录:

  Select *或字段名 from table_name group by 字段名

  group by 和group_concat()函数使用:每个分组的所有字段都可以显示

  Select 字段名,roup_coucat(字段名)from table_name group by字段名

  -group by与集合函数使用:select 字段名,count(字段名)fromtable_name group by 字段名 having count(字段名) 条件

  多字段分组:select * fromtable_name group by 字段1,字段2…

  E,group by与with rollup一起用

  Select 字段名,count(字段名)from table_name group by 字段名 with rollup

  6.用limit限制查询数据

  Select * from table_namelimit a或(limit a,b),前者是显示从第一条到a条数据,后者是显示从a条到b条间的数据

  7.使用集合函数查询数据

  count()统计数据条数:Select count(*) from table_name

  sum()求和:Select 字段名,sum(字段名)from table_name where 条件

  avg()求平均数:Select avg(字段名) from table_name group by 字段名

  max与min最大与最小值:Select max(字段名)/min(字段名) from table_name;

  8.多表连接查询

  - 内连接查询:两个以上表中存在意义相同的字段时,可以用该字段来连接表进行查询.如:select 字段1,字段2,字段3…from table_name1,table_name2 wheretable_name1.字段a=table_name2.字段b

  - 外连接查询:select 字段列表from table_name01 left/right jointable_name02 on table_name01.字段名=talbe_name02.字段名。Letf表示左链接,right表示右链接

  - 复合条件查询:运用多条件精确查询

  9.用正则表达式查询

  查询以特定字符开头的记录:select * fromtable_name where 字段名 regexp ‘^a’以a头

  查询以特定字符结束的记录:Select * fromtable_name where regexp ‘xx$;

  用符号“.”来代替字符串中任意一个字符:Select * from table_name where name regexp ‘^l..y$’;

  –表或字段取别名——–

  表的别名:select * fromtable_name t where t.字段=值;t就是表的别名

  字段的别名:用as关键字,如:select t_id as 字段id from table_name wheret_id=值 ;t_id就是对应字段的别名,别名可以同真实名一样使用

  –数据库备份——–

  mysqldump命令备份:mysqldump –u username –p db_nametable1,table2….>BackupName.sql;//其中db_name是数据库的名称,table1..是表名,如果没有表名将备份 整个数据库,backupname.sql表示备份文件的名称,前面可以加个绝对路径

  备份多个数据库:Mysqldump -uusername –p –databases db_name1 db_name2… > backupname.sql

  备份所有数据库:Mysqldump –u root–p –all-databases > C:\all.sql

  用Mysqlhotcopy工具快速备份

数据库还原:Mysql –u root –p < backup.sql//其中backup.sql是保存的数据库文件



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-275752-1-1.html 上篇帖子: altas mysql-proxy 配置读写分离 下篇帖子: mysql增加远程访问权限 数据库操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表