mySQL的小知识

3. 数据库的删除

c盘中的Program Files (x86)中的MySQL 和ProgramData中的MySQL

注册表编辑器中的 HKEY_LOCAL_MACHING\SYSTEM\ControlSet001\services\MySQL   

HKEY_LOCAL_MACHING\SYSTEM\ControlSet002\services\MySQL

5.mysql的数据类型:

字符串:char (),varchar(),text

数字:unsigned(不能插入负数),zerofill(补0),tinyint,smallint,in,bigint,float,double,decimal(N,M)(N是整数部分加小数部分的总长度,即插入的数字的整数部分不能超过(N-M)位,M是小数部分的位数,若插入的部分不足M位则会自动补到M位小数,若超过M位,就会截取前M位)

日期:date,time,datetime,timestamp(修改时间时,第一个timestamp字段,会自动更新成当前时间)

blob(binary large object),二进制大对象,是一个存储二进制文件的容器

  tinyblob(255字节),blob(65K),mediumblob(16M),longblob(4G)

default:设置字段的默认值;

comment:在建表语句中加入注释语句

 

4.语句:

 登录数据库:mysql  -uroot  -proot

 查看数据库:show  databases;   

                   show schema;

进入数据库:use mysql;

查看数据表:show tables;

退出:quit    exit     \q

通知服务器,客户端的编码问题是gbk:set names gbk;

创建数据库:create database db1 charset utf8;

查看建库语句:show create database db1\G;

修改数据库的默认字符集:alter database db1 charset gbk;

删除数据库:drop database db1;

创建表:create table tb1(……)  engine=innodb(默认就是这个) charset=utf8;

查看表结构:desc tb1;

查看创建表语句:show create table tb1\G;

修改表名:rename table tb1 to user;

修改存储引擎和字符编码:alter table user engine=myisam charset=gbk;

添加字段:alter table user add id int first;(加在第一行)

               alter table user add email varchar(100) after name;

              alter table user add(age int ,height int);

改字段名:alter table user change gender sex char(1);

改字段类型:alter table user modify sex char(2);

改字段顺序:alter table user modify age int after name;

删除字段:alter table user drop column height;

删除表:drop table user;

截断表(删除表并重新创建)truncate table user;

insert插入数据:insert into user values(…);

                       insert into user(…) values(),();

update修改数据:update user set id =5,name=’全安’ where id =1;

delete删除数据:delete from user where id>3;

select查询数据:select* from user;

新表创建主键 :可以直接在字段后面加上 primary key auto_increment,也可以在最后加上primary key(id);

修改表时添加主键: alter table tb1 add primary key(id);

删除主键:alter table tb1 drop primary key;

修改主键,使其自增:alter table tb1 modify id int auto_increment;

可以调整下一个自增值(一般不会这么做):alter table tb1 auto_increment=100;

 当手动插入一个最大主键值,自增变量会变成这个最大值+1;

取消自增:alter table tb1modify id int;(不加auto_increment就是取消)

外键:在表的最后加上:foreign key(dept_id)references dept(id);

修改表时添加外键:alter table emp add foreign key(dept_id) references dept(id);

删除外键索引:alter table emp  drop foreign key dept_id;

再删索引(可选):alter table emp drop index dept_id;

not null:非空

取消非空约束:alter table emp modify name varchar(10);不写not null,就是允许null;

unique:唯一   直接在字段后面加上unique或者在表的最后加上unique key(name);

unique key(name,ip);(两个字段组合不重复)

修改表时添加:alter table emp add unique key(name);

取消唯一约束:

 

limit:limit接受一个或两个数字参数,如果是两个参数,第一个参数指定第一个返回记录的偏移量,第二个参数指定返回记录行的最大数目

select *from tb1 limit 5,10;检索记录行6-15

select * from tb1 limit 95,-1;检索记录行96-last

select *from tb1 limit 5;检索前5个记录行,换句话说limit n,等价于limit0,n;

 

where 子句:

对查询进行过滤:

=,<>,>,>=,<,<=,between..and…,in(…,…,…),is null,like   (%,_)(\_,\%,\\)(普通的下划线,百分号,反斜线), not  (not between    and   ,not  in(),is not null,not like),and,or

distinct:去除重复的值

order by:asc(升序,默认),desc(降序)

子段别名: as   或者直接省略as

字符串:

char_length('a中') - 字符数

 

length('a中') - 字节数

 

concat('a','b','cde','fff') - 字符串连接,其他数据库可用 || 连接字符串,'abc' || 'def'

 

concat_ws(';','abc','def','ggg') - 用分隔符连接字符串  

 

instr('abcdefgdef','def') - 返回第一个子串的位置,从1开始,找不到返回0

 

locate('abc', '---abc---abc---abc-') - 返回第一个子串的位置,从1开始,找不到返回0

 

locate('abc', '---abc---abc---abc-',5) - 从指定位置向后找

 

insert('abcdefghijkl',2, 11, '---') - 用子串取代从2位置开始的11个字符

 

lower('AdFfLJf') - 变为小写

 

upper('AdFfLJf') - 变为大写

 

left('AdFfLJf',3) - 返回最左边的三个字符

 

right('AdFfLJf',3) - 返回最右边的三个字符

 

lpad('abc', 8, '*') - 左侧填充,指定长度比源字符串少,相当于left

 

rpad('abc', 8, '*') - 右侧填充,指定长度比源字符串少,相当于left

 

trim('  a  bc   ') - 去除两端空格

 

substring('abcdefghijklmn', 3) - 从3位置开始的所有字符

 

substring('abcdefghijklmn', 3, 6) - 从3位置开始的6个字符

 

repeat('abc', 3) - 重复三遍abc

 

REPLACE('Hello MySql','My','Your') - 子串替换

 

REVERSE('Hello') - 翻转字符串

 

SPACE(10) - 返回10个空格

 

数学

ceil(3.94) - 天花板,向上取整

floor(3.94) - 地板,向下取整

round(673.4974) - 四舍五入

round(673.4974, 0) - 四舍五入到小数点后两位

round(673.4974, -2) - 四舍五入到百

truncate(234.39, 1) - 舍去至小数点后1位,必须指定位数

format(391.536, 2) - 数字格式化为字符串,###,###.###,四舍五入,第二个参数为小数位数

rand() - 随机浮点数,[0,1)

日期

l  日期字符串格式符合mysql的默认格式 '2018-3-15',可以与日期类型数据之间自动转换

 

 

NOW()   返回当前的日期和时间

 

CURDATE()   返回当前的日期

 

CURTIME()   返回当前的时间

 

DATE(时间)   提取日期或日期/时间表达式的日期部分

 

TIME(时间)    提取日期或日期/时间表达式的时间部分

 

EXTRACT(字段 From 日期)   返回日期/时间按的单独部分

 

    字段的合法值:

 

          MICROSECOND

 

          SECOND

 

          MINUTE

 

          HOUR

 

          DAY

 

          WEEK

 

          MONTH

 

          QUARTER

 

          YEAR

 

          SECOND_MICROSECOND

 

          MINUTE_MICROSECOND

 

          MINUTE_SECOND

 

          HOUR_MICROSECOND

 

          HOUR_SECOND

 

          HOUR_MINUTE

 

          DAY_MICROSECOND

 

          DAY_SECOND

 

          DAY_MINUTE

 

          DAY_HOUR

 

          YEAR_MONTH

 

DATE_ADD(日期, INTERVAL 数量 字段)   给日期添加指定的时间间隔

 

    字段的合法值同上

 

  

 

DATE_SUB(日期, INTERVAL 数量 字段)   从日期减去指定的时间间隔

 

DATEDIFF(日期1, 日期2)   返回两个日期之间的天数

 

DATE_FORMAT(日期格式)   用不同的格式显示日期/时间

 

    格式字符:  %Y-%m-%d %H:%i:%s

 

                %d/%m/%Y

 

                %Y%m%d

 

            %a  缩写星期名

 

            %b  缩写月名

 

            %c  月,数值

 

            %D  带有英文前缀的月中的天

 

            %d  月的天,数值(00-31)

 

            %e  月的天,数值(0-31)

 

            %f  微秒

 

            %H  小时 (00-23)

 

            %h  小时 (01-12)

 

            %I  小时 (01-12)

 

            %i  分钟,数值(00-59)

 

            %j  年的天 (001-366)

 

            %k  小时 (0-23)

 

            %l  小时 (1-12)

 

            %M  月名

 

            %m  月,数值(00-12)

 

            %p  AM  PM

 

            %r  时间,12-小时(hh:mm:ss AM  PM

 

            %S  (00-59)

 

            %s  (00-59)

 

            %T  时间, 24-小时 (hh:mm:ss)

 

            %U   (00-53) 星期日是一周的第一天

 

            %u   (00-53) 星期一是一周的第一天

 

            %V   (01-53) 星期日是一周的第一天,与 %X 使用

 

            %v   (01-53) 星期一是一周的第一天,与 %x 使用

 

            %W  星期名

 

            %w  周的天 0=星期日, 6=星期六)

 

            %X  年,其中的星期日是周的第一天,位,与 %V 使用

 

            %x  年,其中的星期一是周的第一天,位,与 %v 使用

 

            %Y  年,

 

            %y  年,

 

LAST_DAY(日期) - 返回当月最后一天

 

null值处理:ifnull(1,2) 判断参数1是否为null,不是null返回第一项,是null返回第二项

coalesce(1,2,3…)从左到右找到第一个非null值返回

加密:md5(‘……’);单项加密,不能解密,任何数据加密成32位16进制数字字符串,一般用来对用户的密码进行加密

sha(‘,,,,,’)单项加密,不能解密。

多行函数,聚合函数

sum()

avg()

max()

min()

count()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值