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. 实现类似MVC ViewBag类型的对象

    public class ViewBag : DynamicObject { private readonly Dictionary<string,dynamic> dic=new Dic ...

  2. Android使用Sugar ORM创建数据库报no such table:...的解决方法

    在学习使用Android开源框架Sugar ORM时,只是做了开始的创建数据库的操作就报出如下的异常信息 android.database.sqlite.SQLiteException: no suc ...

  3. css——样式表分类,选择器

    一,样式表分类 (1)内联样式[优先级最高][常用][代码重复使用性最差] (当特殊的样式需要应用到个别元素时,就可以使用内联样式. 使用内联样式的方法是在相关的标签中使用样式属性.样式属性可以包含任 ...

  4. Web服务器磁盘满故障深入解析

    问题:硬盘显示被写满,但是用du -sh /*查看时占用硬盘空间之和还远小于硬盘大小即找不到硬盘分区是怎么被写满的. 今天下午接到一学生紧急求助,说生产线服务器硬盘满了.该删的日志都删掉了.可空间还是 ...

  5. Web前端面试指导(十四):如何居中一个元素(正常、绝对定位、浮动元素)?

    题目点评 这道题目的提问比较多,连续问了三个问题,正常元素.绝对定位元素.互动元素如何居中,而且居中没有说清楚是垂直居中还是水平居中,要回答清楚这个问题,必须得有深厚的功底,而且要分类的来回答,条理要 ...

  6. 第1章1zabbix快速入门

    p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; t ...

  7. [SinGuLaRiTy] 树形DP专项测试

    [SinGuLaRiTy-1015] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 对于所有的题目:Time Limit:1s  |  Me ...

  8. html/css/javascript的含义、作用及理解

    HTML(HyperText Markup Language/超文本标记语言) 含义:HTML是一种用于创建网页的标准标记语言. 作用:页面内可以包含图片.链接,甚至音乐.程序等非文字元素. 理解:主 ...

  9. QQ_SingleTalkClient

    package test_teacher;import java.io.*;import java.net.*;public class SingleTalkClient{    public sta ...

  10. Unity3d中的PlayerPrefs游戏存档API的扩展

    功能 在游戏会话中储存和访问游戏存档.这个是持久化数据储存,比如保存游戏记录. 静态函数 DeleteAll Removes all keys and values from the preferen ...