设为首页 收藏本站
查看: 1091|回复: 6

[经验分享] mysql数据库操作和SQL语言

[复制链接]

尚未签到

发表于 2012-11-1 08:57:46 | 显示全部楼层 |阅读模式
1,创建数据库,create datebase 数据库名,在这里kenan建立一个数据库名为myfirstdb
  • create database myfirstdb;
2,查看所有的数据库
  • show databases;
3,选择数据库,只有先选择数据库,才能在选择的数据库中进行数据库操作
  • use myfirstdb;
4,删除数据库
  • drop database myfirstdb;
数据库的增删改查  这里要先使用 use来选择要操作的数据库
1,建立数据库表

  • use myfirstdb;  
  • create table user(  
  • id int auto_increment primary key,  
  • username varchar(50) not null,  
  • password varchar(50) not null,  
  • createtime datetime,  
  • )
这里创建了一个名为user 的表,id为int型的,auto_increatement表明这个是自增字段,primary key表明这个是主键,username varchar(50)表明userame是可变的字符长,not null表明该字段不能够为空,createtime datetime 字段cratetime是日期时间类型的。
2, 查看表结构
  • mysql> desc user;  
  • +------------+-------------+------+-----+---------+----------------+  
  • | Field      | Type        | Null | Key | Default | Extra          |  
  • +------------+-------------+------+-----+---------+----------------+  
  • | id         | int(11)     | NO   | PRI | NULL    | auto_increment |  
  • | username   | varchar(50) | NO   |     | NULL    |                |  
  • | password   | varchar(50) | NO   |     | NULL    |                |  
  • | createtime | datetime    | YES  |     | NULL    |                |  
  • +------------+-------------+------+-----+---------+----------------+  
  • 4 rows in set (0.01 sec)  
  • mysql> show columns from user;  
  • +------------+-------------+------+-----+---------+----------------+  
  • | Field      | Type        | Null | Key | Default | Extra          |  
  • +------------+-------------+------+-----+---------+----------------+  
  • | id         | int(11)     | NO   | PRI | NULL    | auto_increment |  
  • | username   | varchar(50) | NO   |     | NULL    |                |  
  • | password   | varchar(50) | NO   |     | NULL    |                |  
  • | createtime | datetime    | YES  |     | NULL    |                |  
  • +------------+-------------+------+-----+---------+----------------+  
  • 4 rows in set (0.01 sec)
在这里展示了两种查看表结构的方式3,修改表结构
添加列
  • mysql> alter table user add age int;  
  • Query OK, 0 rows affected (0.25 sec)  
  • Records: 0  Duplicates: 0  Warnings: 0  
修改列
  • mysql> alter table user modify username varchar(30);  
  • Query OK, 0 rows affected (0.19 sec)  
  • Records: 0  Duplicates: 0  Warnings: 0
注意关键词 modify修改后的表结构
  • mysql> desc user;  
  • +------------+-------------+------+-----+---------+----------------+  
  • | Field      | Type        | Null | Key | Default | Extra          |  
  • +------------+-------------+------+-----+---------+----------------+  
  • | id         | int(11)     | NO   | PRI | NULL    | auto_increment |  
  • | username   | varchar(30) | YES  |     | NULL    |                |  
  • | password   | varchar(50) | NO   |     | NULL    |                |  
  • | createtime | datetime    | YES  |     | NULL    |                |  
  • | age        | int(11)     | YES  |     | NULL    |                |  
  • +------------+-------------+------+-----+---------+----------------+  
  • 5 rows in set (0.01 sec)
4,删除表
  • mysql> drop table user;  
  • Query OK, 0 rows affected (0.03 sec)
5,插入数据
  • mysql> insert into user values(null,'kenan','kenan',now());  
  • Query OK, 1 row affected (0.13 sec)
这里使用了日期函数,表示当前时间和日期,字符串要用单引号引起来6,查询数据
  • mysql> select * from user;  
  • +----+----------+----------+---------------------+  
  • | id | username | password | createtime          |  
  • +----+----------+----------+---------------------+  
  • |  1 | kenan    | kenan    | 2012-10-30 21:46:31 |  
  • +----+----------+----------+---------------------+  
  • 1 row in set (0.00 sec)  
  • mysql> select username,password from user;  
  • +----------+----------+  
  • | username | password |  
  • +----------+----------+  
  • | kenan    | kenan    |  
  • +----------+----------+  
  • 1 row in set (0.00 sec)
第一句表示查询所有的字段从user表里边,在这里*表示所有,第二句表示单独查询username和password字段
6,带有where字句的条件查询
  • mysql> select * from user where id > 1;  
  • mysql> select * from user where username = 'kenan';  
  • mysql> select * from user where username = 'kenan' and id = 1;
这里分别进行了三个带有where字句的子查询,分别对id,和username进行限制,用and 连接两个限制条件7,group by 对查询结果进行分组
  • mysql> select * from user;  
  • +----+----------+----------+---------------------+  
  • | id | username | password | createtime          |  
  • +----+----------+----------+---------------------+  
  • |  1 | kenan    | kenan    | 2012-10-30 21:46:31 |  
  • |  2 | lele     | lele     | 2012-10-31 15:01:20 |  
  • |  3 | kenan    | lele     | 2012-10-31 15:06:46 |  
  • +----+----------+----------+---------------------+  
  • 3 rows in set (0.00 sec)  
  • mysql> select * from user group by username;  
  • +----+----------+----------+---------------------+  
  • | id | username | password | createtime          |  
  • +----+----------+----------+---------------------+  
  • |  1 | kenan    | kenan    | 2012-10-30 21:46:31 |  
  • |  2 | lele     | lele     | 2012-10-31 15:01:20 |  
  • +----+----------+----------+---------------------+  
  • 2 rows in set (0.04 sec)  
  • mysql> select username,avg(id) from user group by username;  
  • +----------+---------+  
  • | username | avg(id) |  
  • +----------+---------+  
  • | kenan    |  2.0000 |  
  • | lele     |  2.0000 |  
  • +----------+---------+  
  • 2 rows in set (0.04 sec)  
  • mysql> select username,sum(id) from user group by username;  
  • +----------+---------+  
  • | username | sum(id) |  
  • +----------+---------+  
  • | kenan    |       4 |  
  • | lele     |       2 |  
  • +----------+---------+  
  • 2 rows in set (0.03 sec)
这里展示的group by的用法,首先第一句是按照username分组,所以 username相同的数据会认为是一组只显示第一条数据,第二个sql语句和第三个sql语句用了两个分组函数avg(),sum()函数,这两个函数呢,是跟group by 配合使用的,avg()是用来求这一组数据的平均值,而sum()是用来求这一组数据的和。8,order by 对结果进行排序
  • mysql> select * from user;  
  • +----+----------+----------+---------------------+  
  • | id | username | password | createtime          |  
  • +----+----------+----------+---------------------+  
  • |  1 | kenan    | kenan    | 2012-10-30 21:46:31 |  
  • |  2 | lele     | lele     | 2012-10-31 15:01:20 |  
  • |  3 | kenan    | lele     | 2012-10-31 15:06:46 |  
  • +----+----------+----------+---------------------+  
  • 3 rows in set (0.00 sec)  
  • mysql> select * from user order by username;  
  • +----+----------+----------+---------------------+  
  • | id | username | password | createtime          |  
  • +----+----------+----------+---------------------+  
  • |  1 | kenan    | kenan    | 2012-10-30 21:46:31 |  
  • |  3 | kenan    | lele     | 2012-10-31 15:06:46 |  
  • |  2 | lele     | lele     | 2012-10-31 15:01:20 |  
  • +----+----------+----------+---------------------+  
  • 3 rows in set (0.00 sec)  
  • mysql> select * from user order by id;  
  • +----+----------+----------+---------------------+  
  • | id | username | password | createtime          |  
  • +----+----------+----------+---------------------+  
  • |  1 | kenan    | kenan    | 2012-10-30 21:46:31 |  
  • |  2 | lele     | lele     | 2012-10-31 15:01:20 |  
  • |  3 | kenan    | lele     | 2012-10-31 15:06:46 |  
  • +----+----------+----------+---------------------+  
  • 3 rows in set (0.00 sec)  
  • mysql> select * from user order by id desc
  •     -> ;  
  • +----+----------+----------+---------------------+  
  • | id | username | password | createtime          |  
  • +----+----------+----------+---------------------+  
  • |  3 | kenan    | lele     | 2012-10-31 15:06:46 |  
  • |  2 | lele     | lele     | 2012-10-31 15:01:20 |  
  • |  1 | kenan    | kenan    | 2012-10-30 21:46:31 |  
  • +----+----------+----------+---------------------+  
  • 3 rows in set (0.00 sec)  
  • mysql> select * from user order by username,id;  
  • +----+----------+----------+---------------------+  
  • | id | username | password | createtime          |  
  • +----+----------+----------+---------------------+  
  • |  1 | kenan    | kenan    | 2012-10-30 21:46:31 |  
  • |  3 | kenan    | lele     | 2012-10-31 15:06:46 |  
  • |  2 | lele     | lele     | 2012-10-31 15:01:20 |  
  • +----+----------+----------+---------------------+  
  • 3 rows in set (0.00 sec)
在这里第一个sql语句,查出所有的user表中的数据,默认是按照你插入时的数据来排序,就是id递增第二句是 按照username排序,这个会比较username的首字母order by id 是按照id递增排序order by id desc 是按照id递减排序,这里大家明白 desc的作用了吧order by username,id是添加了两个排序条件,首先按照username排序,username相同的话,会按照id排序在排序中如果遇到NULL值,把NULL值按照最小的值来处理9,distinct的用法
  • mysql> select distinct username from user;  
  • +----------+  
  • | username |  
  • +----------+  
  • | kenan    |  
  • | lele     |  
  • +----------+  
  • 2 rows in set (0.00 sec)
distinct的是去重,然后把不重复的查询出来10,like模糊查询
  • mysql> select * from user where username like 'ke%';  
  • +----+----------+----------+---------------------+  
  • | id | username | password | createtime          |  
  • +----+----------+----------+---------------------+  
  • |  1 | kenan    | kenan    | 2012-10-30 21:46:31 |  
  • |  3 | kenan    | lele     | 2012-10-31 15:06:46 |  
  • +----+----------+----------+---------------------+  
  • 2 rows in set (0.00 sec)  
  • mysql> select * from user where username like '_e%';  
  • +----+----------+----------+---------------------+  
  • | id | username | password | createtime          |  
  • +----+----------+----------+---------------------+  
  • |  1 | kenan    | kenan    | 2012-10-30 21:46:31 |  
  • |  2 | lele     | lele     | 2012-10-31 15:01:20 |  
  • |  3 | kenan    | lele     | 2012-10-31 15:06:46 |  
  • +----+----------+----------+---------------------+  
  • 3 rows in set (0.01 sec)
在这里用了like模糊查询第一个sql语句,是查询出来 uername 以 ke 开头的 行第二个sql语句,是查询出来 username 的第二个字母是e的行在这里%表示0或多个字符,_代表一个字符11,LIMIT 限定结果行数,用来进行分页查询
  • mysql> select * from user limit 1;  
  • +----+----------+----------+---------------------+  
  • | id | username | password | createtime          |  
  • +----+----------+----------+---------------------+  
  • |  1 | kenan    | kenan    | 2012-10-30 21:46:31 |  
  • +----+----------+----------+---------------------+  
  • 1 row in set (0.00 sec)  
  • mysql> select * from user limit 1,2;  
  • +----+----------+----------+---------------------+  
  • | id | username | password | createtime          |  
  • +----+----------+----------+---------------------+  
  • |  2 | lele     | lele     | 2012-10-31 15:01:20 |  
  • |  3 | kenan    | lele     | 2012-10-31 15:06:46 |  
  • +----+----------+----------+---------------------+  
  • 2 rows in set (0.00 sec)
limit的两种用法第一种limit 1这个是显示查询出来的数据的第一条 当让1换成x,就是x条第二种limit 1,2这里limit带有的两个参数              首先我们把查询出来的数据进行编号,从0号开始(当然这个编号是不存在的,就是说表内不存在这个字段),它不是id              这个编号是便于我们理解人为的编号              然后第一个参数代表的含义呢,就是要显示的数据的编号              第二个参数表示的就是从刚刚编号开始(包含选中的编号)显示多少条数据分页用法,要显示第x页的数据,每页显示y条首先计算第x也的数据的开始编号是(x-1)*y所以这个sql语句应该这样写select * from user limit (x-1)*y,y;12,修改记录
  • mysql> update user set createtime = now() where username = 'kenan';  
  • Query OK, 2 rows affected (0.05 sec)  
  • Rows matched: 2  Changed: 2  Warnings: 0
这里把user表中的所有username叫做kenan的记录更新createtime字段,更新为当前时间13,删除记录
  • mysql> delete from user where username = 'lele';  
  • Query OK, 1 row affected (0.06 sec)
这里删除user表中所有username叫做lele的记录今天就写到这里吧,这个是最长的一片博客了,大家有问题可以回复我哦!

运维网声明 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-1824-1-1.html 上篇帖子: MySQL5.5.x 编译安装 下篇帖子: mysql修改默认的存储引擎 mysql 语言 数据库操作

尚未签到

发表于 2013-3-18 11:33:57 | 显示全部楼层
此地禁止大小便,违者没收工具。

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

尚未签到

发表于 2013-5-16 21:23:17 | 显示全部楼层
沒有激情的亲吻,哪來床上的翻滾?

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

尚未签到

发表于 2013-5-21 16:13:01 | 显示全部楼层

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

尚未签到

发表于 2013-5-27 08:31:45 | 显示全部楼层
帮你顶下哈!!

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

尚未签到

发表于 2013-6-4 06:35:36 | 显示全部楼层
写的真的很不错

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

尚未签到

发表于 2013-6-8 09:07:07 | 显示全部楼层
丑,但是丑的特别,也就是特别的丑!

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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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