创建数据库

1、连接数据库

  • #mysql -uroot -p(root用户默认密码空)

2、创建数据库myTest

  • #create database myTest;

3、显示拥有权限的数据库

  • #show databases;

4、切换数据库

  • #use databaseName

表(增删改查)

1、增

create table students(
id int auto_increment primary key,
name varchar(10) not null,
sex varchar(3) default '女',
address varchar(50),
phone int not null unique,
age,
);

2、删

  • #drop table tablename;
  • #truncate tablename;#快速删除表

3、改

  • #alter table oldtable rename newtable; #改表名
  • #alter table tablename modify name varchar(20);#改表结构
  • #alter table tablename change name newname varchar(20);#改表结构
  • #alter table tablename add age float after name;#新增字段的位置
  • #alter table tablename add primary key(id)
  • #alter table tablename drop primary key(id)

  • #show create table tablename ;#查看新建表语句
  • #desc table;#查看表结构
  • #show tables ;#查看所有表

数据(增删改查)

1、增

  • #insert into student (name,money,sex,phone) values (‘hk’,10000,‘男’,188);

2、删

  • #turncate tablename; #删除整表数据,自增长id从头再来,快速,从磁盘直接删除,不可恢复
  • #delete from student;
    #删除整个表的数据,自增长继续

3、改

  • #update student set money=100;#不指定条件,修改所有
  • #update student set money=110 where name=‘hk’;#只改hk

4、查

select * from students limit 1,5; #从第几条开始,下面的x条,不包含开始的那一条
SELECT * from students limit 5;查询5条
SELECT id,stu_name,sex,money,phone from students;#指定查询的字段
SELECT * from students;#查询所有的数据
SELECT * from students where sex='男';#指定条件
SELECT * from students where sex='男' and money>100; #多个条件,必须同时满足
SELECT * from students where sex='男' or sex='未知' ; #多个条件,有一个满足即可
SELECT * from students where sex !='男'; #<>也是不等于
SELECT * FROM students where addr like '%东京%';#模糊匹配,%代表的是通配符,必须得用like
SELECT * from students a where a.stu_name like '姚_';#_通配符表示任意一个单字符,姚字后面只能跟一个字
SELECT a.stu_name '学生名称',a.phone '学生电话' from students as a where a.stu_name='姚远';#给表起别名,as可以省略
SELECT * from students a where a.stu_name in ('牛牛','林倩','林远');# in
SELECT * from students a where a.money BETWEEN 1000 and 10000;#在什么什么之间的数据
SELECT * from students ORDER BY money desc;
#order by xxx desc,根据哪个字段继续排序,默认是升序,
降序是desc,升序asc
SELECT * from students a where a.addr = '' or a.addr is null; #查询字段为空的数据
SELECT DISTINCT a.money from students a ;#去重
SELECT COUNT(*) '学生人数' from students where sex='女'; #统计行数
SELECT MAX(a.money) 钱最多 from students a; #最大值
SELECT min(money) 钱最少 from students;#最小值
SELECT AVG(a.money) 平均多少钱 from students a; #平均数
SELECT sum(a.money) 总共多少钱 from students a;#总和
SELECT sex 性别,count(*) 人数 from students GROUP BY sex; #分组

数据库权限

1、grant授权

  • #grant all on *. to ‘andashu’@‘localhost’ IDENTIFIED BY ‘123456’ with grant option;
  • #grant all on *. to ‘andashu’@’%’ IDENTIFIED BY ‘123456’ with grant option
  • #flush privileges;#刷新权限

2、取消授权

  • #Revoke select on . from dba@localhost;
  • #Revoke all on . from andashu@localhost;

修改user表数据

备份数据库:

  • #mysqldump -uroot -p123456 db > db.sql
  • #mysqldump -uroot -p123456 -A > all.sql

    恢复数据:

  • #mysql -uroot -p123456 db < db.sql

删除数据库用户

1、drop不仅删除user表的内容,还会删除其他权限表的内容

  • #drop user username;
  • #drop user username@localhost;

2、delete只会删除user表的内容,删除用户后需要用flush privileges刷新权限,不然下次create会报错

  • #delete from user where user=‘XXX’ and host=‘localhost’;其中XXX为用户名,localhost为主机名

复制一张表到新表

方法一:

1.复制表结构及数据到新表

复制代码代码如下:

  • #CREATE TABLE 新表
    SELECT * FROM 旧表
2.只复制表结构到新表

复制代码代码如下:

  • #CREATE TABLE 新表
    SELECT * FROM 旧表 WHERE 1=2

即:让WHERE条件不成立.

方法二:(低版本的mysql不支持,mysql4.0.25 不支持,mysql5已经支持了)

复制代码代码如下:

CREATE TABLE 新表
LIKE 旧表

3.复制旧表的数据到新表(假设两个表结构一样)

复制代码代码如下:

  • #INSERT INTO 新表
    SELECT * FROM 旧表
4.复制旧表的数据到新表(假设两个表结构不一样)

复制代码代码如下:

  • #INSERT INTO 新表(字段1,字段2,…….)
    SELECT 字段1,字段2,…… FROM 旧表

多表连接查询

表一:t_book

表二:t_bookType

表三:t_priceLevel

select * from t_book,t_bookType;

1.内连接查询(两张或以上的表连接起来查询需要的数据)
根据表一的bookTypeId查询出所有bookTypeName
select * from t_book,t_bookType where t_book.bookTypeId=t_bookType.id;

查询某几个字段:
select bookNme,author from t_book,t_bookType where t_book.bookTypeId=t_bookType.id;

2.外连接查询(两张或以上的表连接起来查询某张表的信息)

3.左连接查询
select * from t_book left join t_bookType on t_book.bookTypeId=t_bookType.id;
如下图:表一(左边表)t_book的数据全部查出 表二没有的字段用null代替

4.右连接查询
select * from t_book right join t_bookType on t_book.bookTypeId=t_bookType.id;
查出表二(右边表)的所有信息,表一没有的用null代替

5.多条件连接查询
select * from t_book,t_bookType where t_book.bookTypeId=t_bookType.id and t_book.price>70;

子查询

1.带in关键字的子查询(一个查询语句的条件可能落在另一个select语句的查询结果中)

select * from t_book where bookType in(select id from t_bookType);
select * from t_book where bookType not in(select id from t_bookType);

2.带比较运算符的子查询(子查询可以使用比较运算符)

select * from t_book where price>=(select price from t_priceLevel where priceLevel=1);

3.带exists关键字的子查询(加入子查询查询到记录,则进行外层查询,否则,不执行外层查询)

select * from t_book where exists(select * from t_booktype);
select * from t_book where not exists(select * from t_booktype);

4.带any关键字的子查询(any关键字表示满足其中任一条件)

select * from t_book where price>= any(select price from t_priceLevel);

5.带all关键字的子查询(all关键字表示满足所有条件)

select * from t_book where price>= all(select price from t_priceLevel);

合并查询

1.union

使用union关键字是,数据库系统会将所有的查询结果合并到一起,然后去掉相同的记录;
select id from t_book union select id from t_bookType;

2.union all

使用union all,不会去除掉重复的记录;
select id from t_book union all select id from t_bookType;

表复制语句

1.INSERT INTO SELECT语句
  • mysql> Insert into Table2(field1,field2,…) select value1,value2,… from Table1
  • 要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量
2.SELECT INTO FROM语句
  • mysql> SELECT vale1, value2 into Table2 from Table1
  • 要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中
3.复制表结构以及数据
  • mysql> CREATE TABLE 新表 SELECT * FROM 旧表
4.只复制表结构
  • mysql> CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
    即:让WHERE条件不成立.
  • mysql> CREATE TABLE 新表 LIKE 旧表 (低版本的mysql不支持,mysql4.0.25 不支持,mysql5已经支持了)
5.复制旧表数据到新表(两表结构一样)
  • mysql> INSERT INTO 新表 SELECT * FROM 旧表
6.复制旧表数据到新表(两表结构不一样)
  • mysql> INSERT INTO 新表(字段1,字段2,…….)SELECT 字段1,字段2,…… FROM 旧表

常用的sql语句(持续更新)相关推荐

  1. mysql 10分钟_10分钟入门mysql(含常用的sql语句,mysql常见问题及解决方案)

    开发中常用的sql语句 1,创建一个数据库并指定编码格式 drop database if exists test;create database test default character set ...

  2. 经典SQL语句大全、50个常用的sql语句

    50个常用的sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,T ...

  3. 常用经典SQL语句大全完整版--详解+实例 (存)

    常用经典SQL语句大全完整版--详解+实例 转 傻豆儿的博客 http://blog.sina.com.cn/shadou2012  http://blog.sina.com.cn/s/blog_84 ...

  4. 数据库常用操作,会持续更新

    数据库常用操作,会持续更新 1.DDL-数据库操作show databases; 查询所有数据库 create database 数据库名: 创建数据库 use 数据库名: 进入所选的数据库中 sel ...

  5. 常用的sql语句,sql使用大全

    常用的sql语句,sql使用大全 我工作中常用到的sql 插入 查询 更新 介绍其他的sql SQL分类 基本的sql语句 高级查询运算词 我工作中常用到的sql 下面是我工作中常用的sql,每次都是 ...

  6. ​MYSQL中常用的SQL语句​(增删改查)

    MYSQL中常用的SQL语句 一.增删改查 1.新增 指定字段插入: INSERT INTO <表名> (<字段1>, <字段2>, <字段3>) VA ...

  7. 50个常用mysql语句_50个常用的sql语句

    50个常用的sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,T ...

  8. IDEA 快速返回上次查看代码的位置常用的IDEA快捷键(持续更新)

    IDEA 快速返回上次查看代码的位置常用的IDEA快捷键(持续更新) IDEA 快速返回上次查看代码的位置:快捷键是:ctrl+alt+方向键(<-往回) 更多精彩请访问本文源地址: https ...

  9. mysql 输出名称_MySQL常用的SQL语句//输出所有信息showfullfieldsfrom'表名称';//改表

    MySQL常用的SQL语句 //输出所有信息 show full fields from '表名称'; //改表名 ALTER  TABLE table_name RENAME TO new_tabl ...

  10. java开发中常用的SQL语句

    在实际开发过程中常用的sql语句, 以user_table为例. 1)创建语句如下: CREATE TABLE USER_TABLE (USER_ID VARCHAR2(8), USER_NAME V ...

最新文章

  1. Python中单个下划线“ _”变量的用途是什么?
  2. Xamarin Essentials教程打开文件
  3. ios 跳转到某 app 的评价区域、由某应用跳转到其他应用
  4. 用权值实现数据被抽取的概率
  5. mysql值域_MySQL学习笔记(三)
  6. 给窗口设置系统级或窗口级的热键
  7. 数据填充规则之PKCS7
  8. java连接数据库sql server_将SQL Server数据库连接到Java
  9. 加密芯片算法移植方案的优点
  10. tensorflow2.1学习--认识张量和常用函数二
  11. umijs 下载文件
  12. C++ OpenCV人脸图像提取
  13. java进销存系统--采购入库
  14. java版12306抢票_GitHub - a1647517212/J12306: 12306抢票程序JAVA版
  15. 怎么在计算机网络上添加文件,教你win7如何设置网络共享文件夹
  16. Python之面向对象
  17. pex虚拟机自动安装
  18. 开源推荐 | 基于 Laravel 的博客 CMS 系统
  19. Canvas模拟太阳地球月球的运动过程
  20. 1000以内完数c语言程序_编程找出1000以内的所有完数

热门文章

  1. 网站登录页面和主页设计demo
  2. Java攻城记(一)利器
  3. mongodb 启动报错
  4. flutter 获取appbar高度,状态栏高度
  5. Android studio 3.5.2真机调试_连接手机
  6. 自媒体文章怎么写?这4点你要知道
  7. 申请Google App Engine并创建appid
  8. linux scim输入法设置,Linux使用之一安装安装scim中文输入法
  9. 二:以理论结合实践方式梳理前端 ES 6+ ——— ES 6+ 基础语法
  10. 如何和用户一起写汇报材料