mysql
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4823字,纯文字阅读大概需要7分钟。
内容图文
![mysql](/upload/InfoBanner/zyjiaocheng/914/9050d3ad05854984b069e307ed41e2b2.jpg)
mysql -u root -p
入门语句
查看数据库: show databases;
增加库: create database dbname;
删除库: drop database dbname;
选中库: use php;
查看表: show tables;
创建表: create table 表名(
列名称 列类型【列属性】【默认值】,
)engine 引擎名 charset字符集.
create class(
stu int,
name varchar(20),
age int ,
area varchar (20),
);中文charset utf8;
删除表: drop table tbname
修改表名:rename table oldname to newname
查看表结构:desc tbnam;
设置默认值: alte table class add age5 tinyint not noll default 0;
查看表格: select * from 表名; 一列select (id,name,...)from(表名)
一行select * from msg where id>2;
删除:delete from msg where id=2;
增加一行:insert into 表名
(列1,列2...列N)
values
(值1,值2...值N);
insert into msg
(id,title,name,content)(可以不写,默认插入所有列)
values
(1,'又来了','李四','你只能当千年老二');
修改一行: update 表名
set
列1=值1,
列2=值2,
...
列N=值N
where 表达式;
updete msg
set
id=2
content = '偏要当老大'
where
name = '李四';
删除: delete from 表名 where 表达式
delete from msg where id = 2(通过where一个条件 定位);
增加一列: alter table class add age4 tinyint(5) zerofill;
alter table class add age3 tinyint unsigned;[非负状态0-255]
turncate 清空表
整形:Tinyint 微小的列类型,1字节 0~255 -128~127
类型 |
字节 |
位 |
无符号 |
有符号 |
tinyint |
1 |
8 |
0-2^8-1 (0-255) |
-2^7->+2^7-1 (-128-127) |
smallint |
2 |
16 |
0-2^16-1 (0-65535) |
-2^15->2^15-1 (-32768-32767) |
mediumint |
3 |
24 |
0-2^24-1 (0-16777215) |
-2^23->2^23-1 (-8388608-8388607) |
int |
4 |
32 |
0-2^32-1 (0-4294967295) |
-2^31->2^31-1 (-2147483648-2147483647) |
bigint |
8 |
64 |
0-2^64-1 (0-18446744073709551615) |
-2^63->2^63-1 (-9223372036854775808-9223372036854775807) |
tinyint(M) unsigned zerofill
unsigned 是无符号,影响存储范围
M 代表宽度 (在zerofill是才有意义)
zerofill 零填充(如果某列zerofill,默认就是unsigned)
列可以声明默认值,而且推荐声明默认值
not null default 0
整形:
tinyint
smallint
mediumint
int
bigint
小数型/浮点型,定点型
float(M,D)M:总位数D:小数位(6.2)为例:-9999.99--9999.99
字节:4个字节,8个字节M<=23,4个字节,>23时,8个字节
decimal:定点型
decimal更精确
字符型
char 定长:char(M),M代表宽度,即可容纳的字符数;0<=M<=255
varchar变长:varchar(M),M代表宽度,即可容纳的字符数;0<=M<=65535(以ascii字符为例,utf822000左右)
char定长类型:M个字符,如果存的小于M个字符,实占M个字符,100<=100
varchar 变长 : M个字符,存的小于M个字符,设为N,N<=M,
实占N个字符+(1-2个字节,这1-2个字符代表数字).
char(M)如何占据M个字符宽度?
答:如果实际储存内容不足M个,则后面加空格补齐
取出来时候,在把后面的空格去掉(所以如果内容最后有空格,将会被清除)
速度上,定长速度快些
char与varchar型的选择原则
- 空间利用率,四字成语表,char(4),
- 个人简介,微博140个字,varchar(140)
- 速度
- 用户名char
text 文本类型 可以存比较大的文本段,搜索速度稍慢
因此,如果不是特别大的内容,建议用varchar来代替
不可以加默认值 (加了也没用)
时间/时间型
year类型:1个字节,表示1901-2155[0000,表示错误提示]
如果输入2位,'00-69'表示2000--2069
'70-99'表示1970--1999
输四位
data类型:典型格式1992-08-12
日期类型:'1000-01-01'--'9999-12-31'
time类型:典型格式:hh:mm:ss
时间类型:'-838-59-59’--’+838-59-59’
datatime类型:典型格式:’1989-05-06 14:32:08’
日期时间类型:范围 1000-01-01 00:00:00--9999-12-31 23:59:59
注意
在开发中, 很少用日期时间类型来表示需要的精确到秒的列,
原因:虽然日期时间类型能精确到秒而且方便查看,
时间戳: 用 int 来存储
1970-01-01 00:00:00 到当前的秒数
一般存储注册时间,商品,发布时间等 ,并不是用 datetime存储 .而是用时间戳
因为datetime 虽然直观 但是不方便计算
用 int 存储时间戳 ,对于显示来说方便格式化 用php的time函数 用 date函数格式化
where mingzi in(2,3) 取2 和3的
where mingzi between 2000 and 3000 取两千到三千的
模糊查询
like 像
% 通配任意字符
‘_’ 单个字符
group 统计
max(): 最大
min(): 最小
sum(): 总和
avg(): 平均
count() 总行数
as 取别名
select cat_id,max(shop_price) from goods group by cat_id;
使用后表 名字 having 查询
order by 排序 desc 小到大 asc 大到小
可以按多字段排序,order by 列1 【desc】,列2 【desc】
limit【offset.】【N】
偏移量 条目
良好的理解模型
where 表达式,把表达式放在行中,看表达式是否为真
列:理解成变量,可以运算
取出结果:可以理解成一张临时表
子查询
where型子查询:把内层查询的结果作为外城查询的比较条件
典型题:查询最大商品,最贵商品
From型子查询:把内层的查询结果当成临时表,共外层sql再次查询
典型题:查询每个栏目下的最新/最贵商品
mysql> select name,avg(score) from stu where name in(select name from (select na
me,count(*) as gk from stu where score < 60 group by name having gk >=2) as tmp)
group by name;
exists子查询:把外层的查询结果拿到内层,看内层的查询是否成立
典型题:查询有商品的栏目
select cat_id,cat_name from category where exists (select * from goods where goods.cat_id = category.cat_id);
select goods_id,cat_id,goods_name,shop_price from goods
where shop_price in
(select max(shop_price) from goods group by cat_id);
内容总结
以上是互联网集市为您收集整理的mysql全部内容,希望文章能够帮你解决mysql所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。