标签:data keyword 创建表 开始 表结构 启动 比较 单行 insert
一.数据库命令规范
<1> 在数据库系统中,SQL语句不区分大小写(建议用大写) 。但字符串常量区分大小写。建议命令大写,表名库名小写;
<2> SQL语句可单行或多行书写,以“ ; ”结尾。关键词不能跨多行或简写。
<3> 用空格和缩进来提高语句的可读性。子句通常位于独立行,便于编辑,提高可读性。
SELECT * FROM tb_table
WHERE NAME="YUAN";
<4> 注释:单行注释:--
多行注释:/*......*/
<5>sql语句可以折行操作
<6> DDL(基本命令),DML(操作命令)和DCL
二.数据库基本命令
2.1数据库基础命令
启动数据库:net start mysql
关闭数据库:net stop mysql
链接数据库:mysql -h 服务器IP -P 端口号 -u用户名 -p密码 --prompt 命令提示符
退出命令:quit exit \q 都可以
显示警告信息:show warnings;
显示当前时间: select now();
显示当前版本信息: select version();
显示当前用户:select user();
2.2库命令 database DDL
查询所有库:show databases;
查询当前使用的库:select database();
查询库的创建方式:show create database 库名;
创建库:create database [if not exists] 库名 [character set utf8]
if not exists 是如果存在不创建,不报错
character set utf8 是设置库的编码格式
修改库的编码格式:alter database db_name [character set 编码格式];
删除库:drop database [if exists] db_name;
使用库(切换库): use 库名;
注:创建库主要是对文件夹中的数据操作。一个库就是一个文件夹。
2.3表命令
查询所有表:show tables;
创建表:create table 表名 (主键 类型 [约束] ,字段名 类型 [约束],。。。最后一条不加逗号) [character set utf8]
主键:唯一且不为空 primary key 归为约束条件
自增约束条件:auto_increment
设置字段默认值:default 值 注意中文要加引号
类型:数字型 字符串型 日期型 点击查看所有
create table employee(
id int primary key auto_increment ,
name varchar(20),
gender bit default 1,
birthday date,
entry_date date,
job varchar(20),
salary double(4,2) unsigned,
resume text
#本段代码来自 海瑞博客http://www.hairuinet.com/sql/20170277/index.html
查看表信息:
查看表结构: desc tab_name
查看表结构 : show columns from tab_name
查看当前数据库中的所有的表 show tables
查看当前数据库表建表语句 show create table tab_name
修改表结构
(1)增加列(字段)
alter table tab_name add [column] 列名 类型[完整性约束条件][first|after 字段名];
alter table user add addr varchar(20) not null unique first/after username;
#添加多个字段
alter table users2
add addr varchar(20),
add age int first,
add birth varchar(20) after name;
(2)修改一列类型
alter table tab_name modify 列名 类型 [完整性约束条件][first|after 字段名];
alter table users2 modify age tinyint default 20;
alter table users2 modify age int after id;
(3)修改列名
alter table tab_name change [column] 列名 新列名 类型 [完整性约束条件][first|after 字段名];
alter table users2 change age Age int default 28 first;
(4)删除一列
alter table tab_name drop [column] 列名;
-- 思考:删除多列呢?删一个填一个呢?
alter table users2
add salary float(6,2) unsigned not null after name,
drop addr;
(5)修改表名
rename table 表名 to 新表名;
(6)修该表所用的字符集
alter table student character set utf8;
4.删除表
drop table tab_name;
5 添加主键,删除主键
alter table tab_name add primary key(字段名称,...)
alter table users drop primary key;
alter table test modify id int;
-- auto_increment没了,但这样写主键依然存在,所以还要加上下面这句
alter table test drop primary key;-- 仅仅用这句也无法直接删除主键
create table article(
id int primary key auto_increment ,
title varchar(20),
publish_date INT,
click_num INT,
is_top TINYINT(1),
content TEXT
);
#本段代码来自 海瑞博客http://www.hairuinet.com/sql/20170277/index.html
三.表纪录操作
3.1数据插入
第一种:insert into 表名 (字段,字段1) values (值,值1);
注意:必须将非空字段写上,字段数量和值数量也必须一一对应
第二种:insert into 表名 values (值,值1...);
注意:值必须安装设计表的所有字段顺序填写
插入多条值:值的括号后加 逗号, 区分,再继续写就可以了
3.2 数据修改
update tab_name set field1=value1,field2=value2,......[where 语句]
UPDATE语法可以用新值更新原有表行中的各列。
SET子句指示要修改哪些列和要给予哪些值。
WHERE子句指定应更新哪些行。如没有WHERE子句,则更新所有的行。
update employee_new set salary=salary+4000 where name=‘yuan‘;
#本段代码来自 海瑞博客http://www.hairuinet.com/sql/20170277/index.html
3.3 数据删除
delete from tab_name [where ....] 一条一条删除
truncate table emp_new; 直接删除文件,再创建一个同样的空表
3.4数据查询
查询所有字段:select * from 表名;
查询单个或固定的字段:select id,name from 表名;
对查询的数据操作显示: select id,name,ret+100 from 表名;
对查询的数据字段别名:select id,name as 姓名 from 表名;
对查询的数据去重: select distinct name,ret from 表名;
对查询数据加条件:select id,name,ret from 表名 where ret>60;
比较运算符:
> < >= <= <> !=
between 80 and 100 值在10到20之间
in(80,90,100) 值是10或20或30
like ‘hairui%‘ 模糊匹配 hairui开头的
like ‘hairui_‘ 匹配hairui在加任意一位,下划线只代表一位,几个代表几个
逻辑运算符
在多个条件直接可以使用逻辑运算符 and or not
练习:
#本段代码来自 海瑞博客http://www.hairuinet.com/sql/20170277/index.html
3.5 Order by 指定排序
select *|field1,field2... from tab_name order by field [Asc|Desc]
-- Asc 升序、Desc 降序,其中asc为默认值 ORDER BY 子句应位于SELECT语句的结尾。
#本段代码来自 海瑞博客http://www.hairuinet.com/sql/20170277/index.html
3.6 group by 分组查询
将相同的数据进行分组,默认只显示第一条数据
group by字句,其后可以接多个列名,也可以跟having子句,对group by 的结果进行筛选。
#本段代码来自 海瑞博客http://www.hairuinet.com/sql/20170277/index.html
一般使用分组进行求和等操作,需要用到聚合函数。
聚合函数: sum 总和 avg 平均值 count 计数 mix 最小值 max 最大值
#本段代码来自 海瑞博客http://www.hairuinet.com/sql/20170277/index.html
3.7 having 和 where两者都可以对查询结果进行进一步的过滤,差别有:
<1>where语句只能用在分组之前的筛选,having可以用在分组之后的筛选;
<2>使用where语句的地方都可以用having进行替换
<3>having中可以用聚合函数,where中就不行。
3.8 limit 指定显示数据
SELECT * from ExamResult limit 1; 只显示一行
SELECT * from ExamResult limit 1,5; 显示从第二行开始,共显示5行
注:Mysql在执行sql语句时执行顺序:from where select group by having order by
mysq基础命令
标签:data keyword 创建表 开始 表结构 启动 比较 单行 insert
原文地址:http://www.cnblogs.com/xuaijun/p/7263017.html