博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL基础知识
阅读量:6284 次
发布时间:2019-06-22

本文共 4695 字,大约阅读时间需要 15 分钟。

 # 启动和停用数据库
net start mysql
net stop mysql

# 登陆和退出

mysql -hlocalhost -uroot -p123;
quit;

# 注释

#
/*   */
脚本中可以使用 --

# 查看版本

select version();

# 查看日期

select current_date();

# 查看当前时间

select now();

# 查看用户

select user();

# 取消未完成的输入

\c

 

#显示有哪些数据库

show databases;

#显示当前数据库

select database();

#创建数据库。如:创建menagerie

create database menagerie;

#切换到menagerie

use menagerie;

#通过登陆直接进入menagerie数据库

mysql -hlocalhost -uroot -p menagerie
***

#删除数据库

drop database menagerie

 

#显示当前数据库中的table

show tables;

#新建一个table

create table pet(name varchar(20),
owner varchar(20),
species varchar(20),
sex char(1),
birth date,
death date);

#describe显示table的结构

describe pet;

#显示表是如何创建的

show create table pet;

#删除table

drop table pet;

#insert 插入记录

insert into pet values
('Puffball','Diane','hamster','f','1999-03-30',NULL);

#select 语句

select * from pet;

#delete 删除记录

delete from pet where name=’Puffball’;

#update 将Bowse的birth 改成1989-08-31

update pet set birth='1989-08-31' where name='Bowser';

#清空table

delet from pet;

#3.5批处理

mysql -hlocalhost -uroot -p123<"d:/site/s.txt"
#或
mysql -hlocalhost -uroot -p <"d:/site/s.txt"
Enter password: ***
#或
\. d:/site/s.txt
\. d:\\site\\s.txt

 

 

 

#where 语句

select * from pet where name='Bowser';

#找出1998年1月1日以后出生的PET

select * from pet where birth > '1998-1-1';

#找出母狗

select * from pet where species = 'dog' and sex='f';

#找出蛇以及鸟

select * from pet where species = 'bird' or species='snake';

#找出公猫以及母狗

select * from pet where (species="cat" and sex="m") or (species="dog" and sex="f");

#显示pet的Name 和 birth

select name, birth from pet;

# UNION

select * from pet where binary pet.name regexp '^b'
union
select * from pet where binary pet.name regexp 'py$';

#找出宠物主人

select owner from pet;

#DISTINCT 只出现一次

select distinct owner from pet;

#选出猫狗的name,species,birth

select name, species, birth from pet where
species='dog' or species ='cat';

#选出name,birth 按 birth 排序

select name, birth from pet order by birth;

#选出name,birth 按 birth 倒序排序

select name, birth from pet
order by birth desc;

#强制区分大小写功能

select name, birth from pet
order by binary name desc;

#多项排序

select * from pet order by species,birth desc;

#计算日期

select name, birth, curdate(),
(year(curdate())-year(birth))
-(right(curdate(),5)<right(birth,5))
As age
from pet;

#计算年龄并按年龄排序

select name, birth, curdate(),
(year(curdate())-year(birth))-
(right(curdate(),5)<right(birth,5))
as age
from pet
order by age;

#选出已死庞物的寿命,并按寿命排序

select name,birth,death,
(year(death)-year(birth))-
(right(death,5)<right(birth,5))
as DAGE
from pet where death is not null
order by DAGE;

#选出庞物的生日

select name, birth, month(birth) from pet;

#选出下月过生日的庞物

#方法一:
select name, birth from pet
where month(birth)=
month(date_add(curdate(),interval 1 month));

#方法二,利用求余法:

select name,birth from pet
where month(birth)=
mod(month(curdate())+1,12);

 

#模式匹配

#_匹配单个字符,%匹配任意数目字符
#SQL默认不区分大小写

#以b开头

select * from pet where name like 'b%';

#以fy结尾

select * from pet where name like"%fy";

#找出包含w的名字

select * from pet where name like "%w%";

#找出正好五个字母的名字

select * from pet where name like "_____";

 

#SQL支持扩展的正则表达式

#找出以b开头的名字,使用^匹配名字的开始
#加上 binary 区分大小写
select * from pet where name regexp "^b";

#找出以fy结尾的名字

select * from pet where name regexp binary "fy$";

#找出包含w的名字

select * from pet where name regexp "w";

#找出正好五个字母的名字

select * from pet where name regexp "^.{5}$";

#计算行

select count(*) from pet;

#计算出每组的行数

select owner, count(*) from pet group by owner;

#每种动物的数量

select species, count(*) from pet group by species;

#每种性别动物的数量,性别不为空

select sex, count(*) as amount from pet where sex is not null group by sex;

#按种类和性别组合动物

select species, sex, count(*) from pet group by species, sex;

#选出猫狗。种类、性别及对应的行数

select species, sex, count(*) from pet
where species='dog' or species='cat'
group by species,sex;

#种类、性别及对应的行数

select species, sex, count(*) from pet
where sex is not null
group by species, sex;

#列的最大值

#选出最大物品号
select max(birth) as article from pet;

#拥有某个最大值的行

select * from pet where birth =
(select max(birth)from pet);

#排序后的第一行

select * from pet
order by birth desc
limit 0,1;

#按组取出列的最大值 (非一一对应)

select name, max(birth) as bd
from pet
group by species;

#拥有某个字段的组间最大值的行

#上例一一对应
select * from pet p1
where p1.birth=
(select max(p2.birth)
from pet p2
where p2.species=p1.species);

 

#使用auto_increment

#
create table animals(
id mediumint not null auto_increment,
name char(30) not null,
primary key(id)
);

#

insert into animals (name) values
('dog'),
('cat'),
('penguin'),
('lax'),
('whale'),
('ostrich');

#

create table animals(
grp enum('fish','mammal','bird') not null,
id mediumint not null auto_increment,
name char(30) not null,
primary key(id,grp)
);

#auto_increment 的初值设为100

alter table animals auto_increment = 100;

转载于:https://www.cnblogs.com/secbook/archive/2012/01/04/2654904.html

你可能感兴趣的文章
iOS 多线程总结
查看>>
webpack是如何实现前端模块化的
查看>>
TCP的三次握手四次挥手
查看>>
关于redis的几件小事(六)redis的持久化
查看>>
package.json
查看>>
webpack4+babel7+eslint+editorconfig+react-hot-loader 搭建react开发环境
查看>>
Maven 插件
查看>>
初探Angular6.x---进入用户编辑模块
查看>>
计算机基础知识复习
查看>>
【前端词典】实现 Canvas 下雪背景引发的性能思考
查看>>
大佬是怎么思考设计MySQL优化方案的?
查看>>
<三体> 给岁月以文明, 给时光以生命
查看>>
Android开发 - 掌握ConstraintLayout(九)分组(Group)
查看>>
springboot+logback日志异步数据库
查看>>
Typescript教程之函数
查看>>
Android 高效安全加载图片
查看>>
vue中数组变动不被监测问题
查看>>
3.31
查看>>
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>