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. RMQ问题(线段树算法,ST算法优化)

    RMQ (Range Minimum/Maximum Query)问题是指: 对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在[i,j]里的最小(大)值 ...

  2. 关于RestfulAPI与SpringMVC之间的传值

    ##默认读者已经搭建好的SpringMVC的环境,并且对SpringMVC有着一定的了解,并且已经对RestfulAPI有了一定的了解 1,首先将WEB-INF下的web.xml里面的url-part ...

  3. 在Android中使用am和input命令在实际使用中的注意事项以及小技巧

    在Android使用到am和进行一些操作是非常方便的,比如一个重复自动的操作,具体用来实现一些什么是看个人需求了,接下来说对于am和input的使用. 本文适用于已经大概去了解了am和input的朋友 ...

  4. 玩转SSH(四):Struts + Spring + MyBatis

    一.创建 SSMDemo 项目 点击菜单,选择“File -> New Project” 创建新项目.选择使用 archetype 中的 maven-webapp 模版创建. 输入对应的项目坐标 ...

  5. JVM年轻代、年老代、永久代

    年轻代: HotSpot JVM把年轻代分为了三部分:1个Eden区和2个Survivor区(分别叫From和To),每次新创建对象时,都会分配到Eden区,当Eden区没有足够的空间进行分配时,虚拟 ...

  6. nlog学习使用

    最近有不少朋友推荐我用NLog.我以前都是自己写txt的文本输出log,以前别人用log4net的时候看那个配置文件,看得我一阵烦,我比较喜欢约定胜于配置的组件.这次玩了一波NLog,,相当不错.一下 ...

  7. 关于for()循环使用过程中遇到的问题(俄罗斯方块游戏中遇到的问题)

    for循环的定义: for(参数1:参数2:参数3),参数1通常是初始化参数的,参数2是判断,参数3是对参数的操作.这三个参数都不是必须的. 这里想说的是,参数1的使用:比如下列语 int nLine ...

  8. python_原始_web框架

    创:10_4_2017 修: 什么是web框架? -- 本质上是socket,用户请求来,业务逻辑处理,返回处理结果 -- 包含socket或者不包含socket的框架 什么是wsgi? -- web ...

  9. 代码编写规范说明书(c#.net与asp.net)

    代码编写规范说明书(c#.net与asp.net) 目 录1 目的2 范围3 注释规范3.1 概述3.2 自建代码文件注释3.3 模块(类)注释3.4 类属性注释3.5 方法注释3.6 代码间注释4 ...

  10. 监听器的小示例:利用HttpSessionListener和HttpServletContextListener实现定时销毁HttpSession

    1.创建MyServletContextListener实现HttpServletContextListener接口 @Override public void contextDestroyed(Se ...