1.数据库和表的操作

创建 create
修改 alter
删除 drop
查看 show

1.1创建数据库

CREATE DATABASE [IF NOT EXISTS] db_name    [create_specification [, create_specification] ...]

create_specification:

[DEFAULT] CHARACTER SET charset_name

[DEFAULT] COLLATE collation_name

CHARACTER SET:指定数据库采用的字符集

COLLATE:指定数据库字符集的比较方式(校对规则)

1.创建一个名称为mydb1的数据库
create database mydb1;
2.创建一个使用utf-8字符集的mydb2数据库。
 create database mydb2 character set utf8;
3.创建一个使用utf-8字符集,并带校对规则的mydb3数据库。
create database mydb3 character set utf8 collate utf8_general_ci;

1.2 查看删除数据库

显示数据库语句:

SHOW DATABASES

显示数据库创建语句:

SHOW CREATE DATABASE db_name

数据库删除语句:

DROP DATABASE  [IF EXISTS]  db_name

1.查看当前数据库服务器中的所有数据库
show databases; 
2.查看前面创建的mydb2数据库的定义信息
show create database mydb2;
3.删除前面创建的mydb3数据库
drop database mydb3;

1.3 修改,备份、恢复数据库

ALTER  DATABASE  [IF NOT EXISTS] db_name [alter_specification[,alter_specification] ...]

alter_specification:

[DEFAULT] CHARACTER SET charset_name

[DEFAULT] COLLATE collation_name

备份数据库表中的数据

mysqldump -u 用户名 –p密码 数据库名 > 文件名.sql

恢复数据库

Source 文件名.sql

1.把其中mydb2的字符集修改为gbk
alter database mydb2 character set gbk; 

1.4 创建表

CREATE TABLE table_name

(

field1  datatype,

field2  datatype,

field3  datatype

)character set charsetname collate collatename

field:指定列名 datatype:指定列类型

 
MySQL基本数据类型

分类

数据类型

说明

数值类型

BIT(M)  bit  bit(8)

TINYINT [UNSIGNED] [ZEROFILL]  byte

BOOL,BOOLEAN   boolean

SMALLINT [UNSIGNED] [ZEROFILL] short

INT [UNSIGNED] [ZEROFILL] int

BIGINT [UNSIGNED] [ZEROFILL] long

FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]  float

DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL] double

位类型。M指定位数,默认值1,范围1-64

带符号的范围是-128到127。无符号0到255。

使用0或1表示真或假

2的16次方

2的32次方

2的64次方

M指定显示长度,d指定小数位数

表示比float精度更大的小数

文本、二进制类型

CHAR(size) char(20)  max—255   abc

VARCHAR(size)  varchar(20) 65535   abcde String

BLOB   LONGBLOB  大的二进制数据

TEXT(clob)          LONGTEXT(longclob)  大文本数据

固定长度字符串

可变长度字符串

二进制数据

大文本

时间日期

DATE/DATETIME/TimeStamp

日期类型(YYYY-MM-DD)  (YYYY-MM-DD HH:MM:SS),TimeStamp表示时间戳,它可用于自动记录insert、update操作的时间

VARCHAR、BLOB和TEXT类是变长类型。
注意:创建表前,要先使用use db语句使用库。
显示数据库中的所有表 show tables
 1.创建一个person表
 create table person(name varchar(20),age int);
1.5 修改表

ALTER TABLE table ADD (column datatype [DEFAULT expr] [, column datatype]...);

ALTER TABLE table MODIFY  (column datatype [DEFAULT expr][, column datatype]...);

ALTER TABLE table DROP (column);

 1.为person添加一个account列
 alter table person add account int;
2.CRUD
Insert语句    (增加数据)
Update语句  (更新数据)
Delete语句   (删除数据)
Select语句 (查找数据)
2.1 使用 INSERT 语句向表中插入数据

INSERT INTO tablename [(column [, column...])]VALUES  (value [, value...]);

插入的数据应与字段的数据类型相同
数据的大小应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。
在values中列出的数据位置必须与被加入的列的排列位置相对应。
字符和日期型数据应包含在单引号中。

插入空值,不指定或insert into table value(null)  // “”

 
2.2 使用 update语句修改表中数据

UPDATE tbl_name SET col_name1=expr1 [, col_name2=expr2 ...][WHERE where_definition]

UPDATE语法可以用新值更新原有表行中的各列。
SET子句指示要修改哪些列和要给予哪些值。
WHERE子句指定应更新哪些行。如没有WHERE子句,则更新所有的行。
2.3 使用 delete语句删除表中数据。

delete from tbl_name  [WHERE where_definition]

如果不使用where子句,将删除表中所有数据。
Delete语句不能删除某一列的值(可使用update)
使用delete语句仅删除记录,不删除表本身。如要删除表,使用drop table语句。
删除表中数据也可使用TRUNCATE TABLE 语句,它和delete有所不同,原理是先删除表再创建新表。
 
Select语句比较复杂所以在下一节讲解
3.Select语句
3.1基本select语句

SELECT [DISTINCT] *|{column1, column2. column3..} FROM  table;

Select 指定查询哪些列的数据。
column指定列名。
*号代表查询所有列。
From指定查询哪张表。
DISTINCT可选,指显示结果时,是否剔除重复数据
create table student(
id int,
name varchar(20),
chinese float,
english float,
math float
); insert into student(id,name,chinese,english,math) values(1,'张小明',89,78,90);
insert into student(id,name,chinese,english,math) values(2,'李进',67,53,95);
insert into student(id,name,chinese,english,math) values(3,'王五',87,78,77);
insert into student(id,name,chinese,english,math) values(4,'李一',88,98,92);
insert into student(id,name,chinese,english,math) values(5,'李来财',82,84,67);
insert into student(id,name,chinese,english,math) values(6,'张进宝',55,85,45);
insert into student(id,name,chinese,english,math) values(7,'黄蓉',75,65,30);
练习:
查询表中所有学生的信息。
查询表中所有学生的姓名和对应的英语成绩。
过滤表中重复数据
3.2select语句2
在select语句中可使用表达式对查询的列进行运算

SELECT*|{column1|expression, column2|expression,..}FROM  table;

在select语句中可使用as语句

SELECT column as 别名 from 表名;

练习
在所有学生分数上加10分特长分。
统计每个学生的总分。
使用别名表示学生分数。
3.3where子句
在where子句中经常使用的运算符

比较运算符

>   <   <=   >=   =    <>

大于、小于、大于(小于)等于、不等于

BETWEEN  ...AND...

显示在某一区间的值

IN(set)

显示在in列表中的值,例:in(100,200)

LIKE ‘张pattern’

模糊查询

IS NULL

判断是否为空

逻辑运算符

and   &

多个条件同时成立

or    |

多个条件任一成立

not   !

不成立,例:where not(salary>100);

Like语句中,% 代表零个或多个任意字符,_ 代表一个任意字符,例first_name like ‘_a%’;

练习:
查询姓名为李一的学生成绩
查询英语成绩大于90分的同学
查询总分大于200分的所有同学
查询英语分数在 80-90之间的同学。
查询数学分数为89,90,91的同学。
查询所有姓李的学生成绩。
查询数学分>80,语文分>80的同学。
查询英语>80或者总分>200的同学
3.3使用order by 子句排序查询结果

SELECTcolumn1, column2. column3..FROM  table order by column asc|desc

Order by 指定排序的列,排序的列即可是表中的列名,也可以是select 语句后指定的列名。
Asc升序、Desc降序

ORDER BY 子句应位于SELECT语句的结尾。

3.4合计函数count

Select count(*)|count(列名) from tablename [WHERE where_definition] 

3.5合计函数sum

Select sum(列名){,sum(列名)…} from tablename   [WHERE where_definition]

3.6合计函数AVG

Select avg(列名){,avg(列名)…} from tablename [WHERE where_definition]

3.7合计函数AVG

Select max(列名) from tablename  [WHERE where_definition]

资料

http://www.w3school.com.cn/sql/index.asp

mysql sql语句的更多相关文章

  1. mysql sql语句大全(转载)

      1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 ...

  2. MYSQL SQL语句技巧初探(一)

    MYSQL SQL语句技巧初探(一) 本文是我最近了解到的sql某些方法()组合实现一些功能的总结以后还会更新: rand与rand(n)实现提取随机行及order by原理的探讨. Bit_and, ...

  3. MySQL客户端工具的使用与MySQL SQL语句

    MySQL客户端工具的使用 1.MySQL程序的组成 客户端 mysql:CLI交互式客户端程序 mycli:CLI交互式客户端程序;使用sql语句时会有提示信息 mysql_secure_insta ...

  4. 利用tcpdump抓取mysql sql语句

    这个脚本是我之前在网上无意间找个一个利用tcpdump 抓包工具获取mysql流量,并通过过滤把sql 语句输入. 脚本不是很长,但是效果很好. #!/bin/bash #this script us ...

  5. 程序员实用的 MySQL sql 语句

    这儿只讲究实用,  程序员编程时常用到的 MySQL的 sql语句(不包括基本的 select, update, delete 等语句). 1. 添加一个用户build,并赋予所有权限的命令 gran ...

  6. MySQL SQL语句分析查询优化

    如何获取有性能问题的SQL 1.通过用户反馈获取存在性能问题的SQL 2.通过慢查询日志获取性能问题的SQL 3.实时获取存在性能问题的SQL 使用慢查询日志获取有性能问题的SQL 首先介绍下慢查询相 ...

  7. mysql sql语句执行时是否使用索引检查方法

    在日常开发中,使用到的数据表经常都会有索引,这些索引可能是开发人员/DBA建表时创建的,也可能是在使用过程中新增的.合理的使用索引,可以加快数据库查询速度.然而,在实际开发工作中,会出现有些sql语句 ...

  8. MYSQL SQL语句优化

    1.EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划. 下面来个简单的示例,标注(1.2.3.4.5)我们要重点关注的数据: type列,连接类型.一个好的SQL语句至少要 ...

  9. mysql sql语句最大长度设置方法

    今天发现了一个错误:Could not execute JDBC batch update 最后发现原因是SQL语句长度大于1M,而我机器上的mysql是默认设置,也就是说mysql通讯的数据包大小设 ...

  10. 自制小工具大大加速MySQL SQL语句优化(附源码)

    引言 优化SQL,是DBA常见的工作之一.如何高效.快速地优化一条语句,是每个DBA经常要面对的一个问题.在日常的优化工作中,我发现有很多操作是在优化过程中必不可少的步骤.然而这些步骤重复性的执行,又 ...

随机推荐

  1. autoLayer:一基本布局

    我不会写博客,写的不好请物见怪,这个autoLayer我就直接上图了: 本人环境:IDE(Xcode6)SDK(IOS8) 准备工作:找一个横图psd(由于我不会切图,我只会简单的描述一下图片处理), ...

  2. 定时任务框架APScheduler学习详解

    APScheduler简介 在平常的工作中几乎有一半的功能模块都需要定时任务来推动,例如项目中有一个定时统计程序,定时爬出网站的URL程序,定时检测钓鱼网站的程序等等,都涉及到了关于定时任务的问题,第 ...

  3. 走入PHP-初次见面

    FROM:实验楼 Linux启动WEB服务器: $ sudo service apache2 start 新建并打开test.php文件: $ sudo gvim /path/test.php PHP ...

  4. 开始学习yii2第一天

    今天在朋友圈看到一条转发,内容是根据招聘网站的要求,列举了需要一个php工程师具体需要哪些技能 框架要求是yii2 出现的最多 已经出来工作了快半个月了,感觉工资还是少的可怜,而且我也好想去张江, 所 ...

  5. synchronized关键字

    最近重新梳理了下java的synchronized相关内容,希望能帮助到有需要的朋友们. 主要阐述以下几个问题: 1.非static方法前加synchronized class Demo{ synch ...

  6. 原生JS实现弹出窗口的拖拽

    上一篇说了一下弹出窗口功能的实现思路,一般情况下紧接着就会需要做到弹窗的移动,当然现在有很插件.库比如hammer可以使用,效率也非常好.但我觉得还是有必要了解一下原生JS的实现思路及方式,如下: 思 ...

  7. 多线程CountDownLatch和Join

    如果现在有五个线程A.B.C.D.E,请问如何用E线程用于统计A.B.C.D四个线程的结果? 题意需要用E线程统计A.B.C.D四个线程,也就是说E线程必须要等到前面四个线程运行结束之后才能执行.那么 ...

  8. inux的进程-进程的概念和fork创建进程

    一.  什么是进程? 初学者,可能认为程序或者一段代码就是一个进程.其实这样说是很不全面的,进程简单的说就是一个个条件. 1.需要一个代码 2.需要运行这个代码环境和资源 从下面的一段代码,我们来分析 ...

  9. Access中的自定义排序设置方式

    一.问题起因 最近有网友提问说,Access中在用查询指定排序方式时,为什么只有升序跟降序,怎么米有自定义排序了?竟然比Excel都弱啊! 其实这是对Access的误解,我这就给大家来解一下疑惑.案例 ...

  10. coolpad 5879logcat不能输入日志解决办法

    有几天没完手机了,玩一下,发现不能打印日志了,记得最开始的时候 会弹出一个选项选择是否输出日志,在网上找了好的方法. 1.重启adb,点击DBMS 进行刷新. 2重启eclipse. 3.重装驱动. ...