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. 【转】如何成为一位优秀的创业CEO

    编者按:本文来自 Ryan Allis,是一位来自旧金山的创业者和投资人.在 2003 年创立了 iContact,并任 CEO. 做创业公司的 CEO 可以说是世界上最有挑战性的事情之一.你得让客户 ...

  2. ATM取款~~

    package com.jredu.ch03; import java.util.Scanner; public class Atmmmmmmmmmm { static int totalMoney= ...

  3. MSDN官方数据库开发群

    QQ群1:43563009 创建人:中国风(Roy_88) 创建时间:2007-07-21 当前人数:326人 QQ群2:27156079 创建人: fcuandy 创建时间:2008-03-20 当 ...

  4. [LeetCode] Decode String 题解

    题目 题目 s = "3[a]2[bc]", return "aaabcbc". s = "3[a2[c]]", return " ...

  5. MYSQL性能优化--分库分表

    1.分库分表 1>纵向分表 将本来可以在同一个表的内容,人为划分为多个表.(所谓的本来,是指按照关系型数据库的第三范式要求,是应该在同一个表的.) 分表理由:根据数据的活跃度进行分离,(因为不同 ...

  6. 如何使用bootstrap

    前言: 前几天,本想做一个登陆界面,但自己写form表单必然很丑,所以想用下bootstarp框架,之前听别人说bootstrap很牛的样子.但我完全不会bootstrap... 下载&目录 ...

  7. linuxCentOs6前期简单且必要的设置

    1.修改主机名 Sudo vi /etc/sysconfig/network(需要重启) Hostname master (不需要重启,设置当前主机名为master) Hostname查看当前主机名 ...

  8. 华为C语言编程规范笔记1

    入职之前,公司培训,做了点笔记~

  9. 利用sub lr,lr,#4:程序是如何进行返回的?

    1: ARM采用的是3级流水线 ARM的流水线结构为:   取指 -----> 译码 ------> 执行 ARM代码:                  PC           PC- ...

  10. ELK日志分析系统的应用

    收集和分析日志是应用开发中至关重要的一环,互联网大规模.分布式的特性决定了日志的源头越来越分散, 产生的速度越来越快,传统的手段和工具显得日益力不从心.在规模化场景下,grep.awk 无法快速发挥作 ...