Mysql
来源:互联网 发布:linux vim无法退出 编辑:程序博客网 时间:2024/06/07 08:02
MYSQL:
对大小写不敏感
between 值1 and 值2;
其中包括两端的值
比较预算符
前后不可加函数限制只能使用子查询
auto_increment
主键自增
创建表格只有int
后面可以不加字符长度限制
status;
查询端口号
select vision();
查询端口号
create database world;
创建数据库
drop database database_name;
删除数据库
drop index;
删除索引
source C:/world.sql;
构建数据库表
desc<table name>;
describe table_name;
查看指定表的创建语句
show tables;
查询数据库中的表
net start mysql
启动服务
net stop mysql
停止服务
create table 表名(
属性名 数据类型[完整性约束条件],
属性名 数据类型[完整性约束条件],
......
属性名 数据类型primary key());
创建表格
option name=option value
创建表的属性
方法一:rename table tablename1 to tablename2;
方法二:alter table tablename1 rename tablename2;
该表名
show table status;
显示表的属性
alter table table_name engine=innodb;
修改表格样式
SHOW global variables like '%engine%';
查看mysql新生成表的默认类型
alter table 表名 add primary key; alter table student9 add primary key (cno)
添加主键
auto_increment
auto_increment='100'
主键自动增加一,默认值是1
alter table table_name drop primary key ;
删除主键
lter table student7 add foreign key student7(ano) references student(ano);
添加外键
二. 快捷键
注释行快捷键
CTRL + /
取消注释行
CTRL + SHIFT + /
增加缩进
TAB
减少缩进
SHIFt + TAB
运行
CTRL + R
运行已选择的
SHIFt + CTRL + R
从这里运行一个语句
F7
停止
CTRL + T
查找下一个
F3
查询编辑器
CTRL + E
下一个窗口
CTRL + TAB
运行:
F9
逐过程:
F8(运行暂停,恢复运行)
逐语句:
F7
跳过:
shirft+F7
alter tabletable_name add 约束条件(columnname);
修改列名
alter table 表名1 change column 旧列名 新列名 varchar(20);
添加列:
alter table 表名 add 列名 数据类型;
删除列:
alter table 表名 drop 列名 数据类型;
删除某行:
delete from 表名称 where 列名称 = 值
eg: delete from student7 where ano=2;
删除所有行:
delete from 表名称 或者 delete*from表名称
eg: delete from student7;
查看表结构:
desc 表名;show columns from 表名;
查看见建表语言:
show create table 表名;
创建表的备份附件:
select into :从一个表中选取数据插入另一个表中,用于表的备份或者对记录进行归档
select*into new_table_name[IN externaidatabase] from old_tablename;
select column_names into new_table_name[IN externaidatabase] from old_tablename;
插入记录insert:
insert into 表名1(表1列1,表1列2)select 表2列1,表2列2 from 表2 where 条件;
查询插入
insert into 。。。。。。select。。。。。
insert into student(sno ,cno) select sno,cno fromstudent2where sno in (4,5);
子查询写入
insert into 表名 列名1=值1,列2= 值2,,,where;
更新记录
update....set....
eg: update student set sname='小明',sex='女'where sno=5;
查询select:
eg: select *from student where age not between 50 and 65;(包含两端)
select语句
指定从哪些表中获取数据from<table-specification>
distinct:消除重复记录行select distinct<expressionlist>
where:只返回满足特性条件的记录航(过滤器)where<condition>
order by:按照表达式列表排列顺序记录
order by<ordering-specification>
desc
降序排列
asc
升序排列
order by tg asc,tno desc
;按照第一序列排列,再按照第二序列排列。
limit:
返回特定部分的数据,而不是所有结果limit<rowcount>
group by语句:
select customer,sum(orderprice) from customer group by列名1,列名2;
having
设置分组条件
select customer,sum(orderprice) from customer group by列名1 having sum(orderprice)>2000;
外键
一个表可以有多个外键
[constraint symbol]foreign key [id] (index_col_name, ...)references tbl_name (index_col_name, ...)[on delete {restrict\cascade\set null\no action\set default}]
跨表匹配inner join可用 与两个没设置外键的表格:
select column(s) from tablename1 inner join tablename2 on tablename1.column=tablename2.column innner join tablename3 on tablename1|2.column=tablename3;但是用on可以后面加其他的条件筛选,on作为表的条件,where作为结果的条件;
left join:
即使右表中没有匹配,也从左表返回所有的行 ,左表所有记录
right join:
即使左表中没有匹配,也从右表返回所有的行,右表所有记录
full join:
只要其中一个表中存在匹配,就返回行,有些数据库中显示full outer join
子查询:
通过相同的列进行表间或者表内查询 ,两个表有没有外键连接都行
select sno from student where ano=(select ano from grade where result='20');
使用union联合查询
不允许重复值:select...union select....
允许重复值:select....union all select....
输入用户名密码
shell>mysql -h localhost -p -u myname
root账户链接服务器:
shell>mysql -u root -p13465 -P 8080 -h 10.84.62.110
退出mysql,可使用
\q、quit()、exit(): mysql>\q
mysql客户端
上下键循环调出历史命令,左右键移动光标,del键删除当前光标处字符,esc键取消当前输入内容
算术运算符:
x+y,x-y, 乘法x*y 除法x/y ,整除x DIV y 4DIV3 ,取模x%y 4mod3
比较运算符:
x=y 结果为true ;
x and y x和y都成立的时候为true;
x or y x和y成立一个值则为true; ;
not y y是false 则结果为true.
x<=>y 支持null值的比较
x<y x<=y x>y x>=y
BETWEEN ... AND
是数值、文本或者日期。 包左不包右。
like搜索某种模式
通配符‘%'匹配任意字符
通配符‘_’表示一个字符
x rlike 'regular expression'或者x regexp 'regular expression'
正式表达式true可以匹配url,ip地址、电话号码,以及邮政编码等更为复杂的模式
where name rlike'nat';where name rlike '*&^%*new<>';
<>all,!=all,not in ,in,any,all,some:
any或者some 其中的一个 ,all全部。any与in的运算方法相似,=all是不存在的,,!=all(或<>all)与not in 相似的
我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式):
SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')AND LastName='Carter'
eg:统计<学生信息表>,统计每个班级中每种性别的学生人数,并按照班级排序
Selectcount(*) as ‘总人数’,sex,classfrom student group by sex,class order by class asc;
统计<学生选修信息表>,显示有两门以上课程不及格的学生的学号(这个表格中没有主键的)
Select sno from gradewhere result>60 group by sno having count(*)>2;
查询空值
where XX ='NULL'
XX字段存的值就是NULL这四个字符,
where XX is null
XX字段什么也没存,这是数据库的判断语法,
where isnull(XX)
XX字段什么也没存,这是界面开发语言的判断语法
函数
均值avg()
eg : select avg(orderprice) as orderaverage form orders;
求和sum()
eg: select avg(orderprice) from orders;
返回匹配条件的行数count()
eg: select count(orderprice) from orders where orderprice>1000;
count(*)
返回匹配条件的记录数
返回文本字段中的长度len()orlength()
select length() from student;
把字段的值转换为大写
ucase()
把字段的值转换为小写
lcase()
从文本字段中提取字符
mid(列表,起始位置,长度);
select mid(customers,1,3) from orders; ali
select mid(customers,1) from orders; alice
select mid(customers,3) from orders; ice
把数字字段舍入指定的小数数位
round()
select round(score,2) from teacher;
函数用于对字段的显示进行格式化
format()
select format(X,D) from teacher
查询选择所有 date_col 值在最后 30 天内的记录。
mysql> SELECT something FROM tbl_name WHERE TO_DAYS(NOW()) – TO_DAYS(date_col) <= 30;
to_days(date) mysql>>select to_days('1992-08-15');
返回从零年开始的天数,,反函数:
mysql>>select from_days(729669);
返回年份,但是不考虑历法改变所遗失得日期
select dayofweek('1992-08-15');
返回 date 的星期索引(1 = Sunday, 2 = Monday, … 7 = Saturday)。
select weekday('1992-08-15');
返回 date 的星期索引(0 = Monday, 1 = Tuesday, … 6 = Sunday)
select dayofmonth('1992-08-15');
返回一个月的第几天
select dayofyear('1992-08-15');
返回一年中的第几天
select month('1992-08-15');
返回一年中的第几个月
select quarter('1992-08-15');
返回一年中的第几个季度
select week('1992-08-15');
返回一年中的第几周
select week('1992-08-15',1)
select week('1992-08-15',0);
;#0(偶数) 一周以星期日开始,返回值范围为 0-53 ;1(奇数) 一周以星期一开始,返回值范围为 0-53
select yearweek('1992-08-15');
返回年份+第几周。可以用mid限制输出结果
类似的函数:
小时hour(),分钟minute(),秒second(),period_add(9801,2)增加2个月到1998年1月,返回199803
DATE_FORMAT(date,format)
%M
月的名字 (January..December)
%W
星期的名字 (Sunday..Saturday)
%D
有英文后缀的某月的第几天 (0th, 1st, 2nd, 3rd, etc.)
%Y
年份,数字的,4 位
%y
年份,数字的,2 位
%X
周值的年份,星期日是一个星期的第一天,数字的,4 位,与 ‘%V’ 一同使用
%x
周值的年份,星期一是一个星期的第一天,数字的,4 位,与 ‘%v’ 一同使用
%a
缩写的星期名 (Sun..Sat)
%d
月份中的天数,数字的 (00..31)
%e
月份中的天数,数字的 (0..31)
%m
月,数字的 (00..12)
%c
月,数字的 (0..12)
%b
缩写的月份名 (Jan..Dec)
%j
一年中的天数 (001..366)
%H
小时 (00..23)
%k
小时 (0..23)
%h
小时 (01..12)
%I
小时 (01..12)
%l
小时 (1..12)
%i
分钟,数字的 (00..59)
%r
时间,12 小时 (hh:mm:ss [AP]M)
%T
时间,24 小时 (hh:mm:ss)
%S
秒 (00..59)
%s
秒 (00..59)
%p
AM 或 PM
%w
一周中的天数 (0=Sunday..6=Saturday)
%U
星期 (00..53),星期日是一个星期的第一天
%u
星期 (00..53),星期一是一个星期的第一天
%V
星期 (01..53),星期日是一个星期的第一天。与 ‘%X’ 一起使用
%v
星期 (01..53),星期一是一个星期的第一天。与 ‘%x’ 一起使用
%%
一个字母 “%”
mysql> SELECTDATE_FORMAT(’1997-10-04 22:23:00′, ‘%W %M %Y’);
-> ‘Saturday October1997′
mysql> SELECTDATE_FORMAT(’1997-10-04 22:23:00′, ‘%H:%i:%s’);
-> ‘22:23:00′
- Mysql
- MySql
- MYSQL
- MySQL
- mysql
- mysql
- mysql
- mysql
- Mysql
- Mysql
- mysql
- MySQL
- mysql
- Mysql
- mysql
- mysql
- mysql
- mySQL
- Spring Cloud入门2——配置中心Config
- 你知道什么是模拟,什么是仿真吗?
- 二维树状数组
- 机器人中的速度概念
- 读书概要:基于oracle的sql优化: 第一章 oracle里的优化器
- Mysql
- 数据结构之路-双向链表
- 互联网协议(3)——IP协议基础
- Tomcat服务器配置多域名访问
- 基于QT,一些简单的对话框(新手)
- 文件系统
- 蓝桥杯蚂蚁感冒
- QCOW2/RAW/qemu-img 概念浅析
- 文件存在,但是无法显示的原因