当前位置:主页 > 文章技巧
MYSQL数据库设计的一些小技巧[转载]
日期:2017-05-30 浏览量:

摘要:设置进入时的默认编码1mysql -uroot -p --default-character-set=utf8... mysql-bin.000002 -vvvv –base64-output=DECODE-ROWS ...

常用数据操作语言DML笔记(select insert update delete)

select 语句
高级的查询功能,见下面的详细内容

1

2

3

4

5

 

select 列名1,列名2 ... from 表名1,表名2...

[where 条件] like

[group by...]

[having ...]

[order by...] 以特定的顺序显示 例:order by name asc;以名字显示,为降序排列

 

insert 语句
MySQL 当记录不存在时插入 insert if not exists.在 MySQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不 存在时才执行插入操作,本文介绍的就是这个问题的解决方案.

1

 

insert into 表名(列名1,列名2,... )values(值1,值2,...)

 

update 语句

1

 

update 表名 set 列名1=值1,列名2=值2 ... [where 条件]

 

delete 语句

1

 

delete from 表名 [where 条件] 注:条件时会删除整个表名

 

truncate 语句

1

2

 

truncate tables 表名

# 注:相当删除整个表名,在重建.非常快

 

从一个文件加载数据到 MYSQL

1

 

load data infile '文件' into tables 表名 [fields terminated by '字符']

 

导出 MYSQL 数据成一个文件

1

 

select * from 表名 into outfile '文件'

 

DDL数据定义语言(vreate tabe,drop table,altre table)

MYSQL 的字符类型要注意 CHAR VARCHAR TEXT 不分大小写,只能存字符 ,BLOB可以存二进制的内容,如果声音,文件.
CHAR主要是定长,VARCHAR是变长,所以VARCHAR更加节约空间.

查看表结构字段

1

 

desc tablesname;

 

添加新的表字段

1

2

3

4

 

alter table test add name varchar(20); #添加一个name的字段

alter table test add f_name varchar(20) after id; #在id之后添加一个name的字段

alter table test add sid int first; #在最前面加入一个字段

alter table test add primary key(id); #添加一个primary主键

 

删除表中的字段

1

2

 

alter table test drop name; #删除

alter table test add primary key; #删除主键

 

设置表中字段的默认值

1

 

alter table test alter name set default '不知道';

 

修改字段名

1

 

alter table test change name l_anme varchar(10); #修改字段名,数据类型要写上

 

数据库插入

1

2

3

 

insert #表名 values

insert into tmp values(default,'kate',0,20);#可以使用default.

insert into tmp(name,sex,age) values('katess',0,20);

 

表的导入导出

1

 

insert tmp2 select name,sex from tmp where id<4; #可以给select 中得到的内容放到tmp2的新表中

 

更新 MYSQL 表中的字段

1

2

 

UPDATE <表名> SET <列名 = 更新值> [WHERE <更新条件>]

update tmp set address='北京' where id between 4 and 5

 

删除表中特定的内容

1

2

 

DELETE FROM tmp WHERE id >5 #删除id大于5的内容

DELETE FROM ss1,ss2 using ss1,ss2 where ss1.id=ss2.id and ss1.name='alex' #二张表ss1和ss2相同的id中内容有alex的内容删除

 

高级查询

常用查询函数
concat(字符连接)
distinct(去掉重复数据)
as(别名)
limit 3,2 (控制显示数,如前现示从第三个起,拿二个数据)

集函数
count(统计)
sun
age

查找(条件内容查找)

1

2

 

select 'abc' like 'abc%';

# %任意字符 _单个字符最少要出现一次

 

MYSQL 中使用正则来查找数据

1

 

select 'abc' regexp '^a.*c$';

 

排序查询结果
使用排序功能,和使用别名功能

1

2

3

 

SELECT * FROM student ORDER BY sage DESC ; #降排序order by要放在最后<

SELECT * FROM student ORDER BY sdept in('信息系','美术系') #同时二个条件

SELECT sno AS '学号', sname AS '姓名' FROM student;

 

分组

1

2

 

select cid,avg(grad) from sc group by cid;

# 在分组中 group by要放在最后,要是要加条件的话,集函数要使用having来换where.放在group by后

 

多表查询

1

2

3

4

 

select s.sname,g.grade form sc as g, student as s where s.sname='扶%' and s.sno=g.sid;

select s.sname,g.grade from sc as g inner join student as s on s.sno=g.sid;

# 内连接,同连接显示相同的内容,要加inner给whereis 改成on

# 如果有的数据没有,可以换left,和right以第一个表为基础来排数据,inner join是二个表都有的内容.

 

子查询

1

2

 

select sname,sage from student where sno not in (select sid from sc) ;

select sname from student where sno in (select)

 

在 MYSQL 中查询,要先转义

#name=mysql_escape_string($name); mysql_escape_string


FAQ:

1. 查看和修改设置 MYSQL 默认编码

1

2

3

 

SHOW CHARACTER SET;查看支持的所有字

show variables like 'character_set_%';

SHOW VARIABLES LIKE 'collation_%';

 

让 MYSQL 重起也可以使用utf8

1

2

3

4

 

[mysqld]

default-character-set=utf

[mysql]

default-character-set=utf8

 

2. 怎么样进行 MYSQL 备份

MYSQL 的备份可用命令mysqldump ,使用方法很简单,

1

 

$ mysqldump -u 用户名 -p (密码) -h 主机名 数据库名 >路径/备份名.bak

 

同时也可以是用mysqldump备份数据结构(tablename.sql)和数据(tablename.txt)

1

 

$ mysqldump -u 用户名 -p (密码) -h 主机名 数据库名 tablename1 tablename2 > back.sql

 

mysqldump -u 用户名 -p (密码) -h 主机名 数据库名 –tab 路径 –opt 数据库名.
EXA:

1

 

$ mysqldump -u xxxx -p xxxxt databases > ./news.sql

 

3. 改变mysql管理员的密码

方法1: 在/usr/local/mysql/bin/下:

1

 

$ mysqladmin -u root password 'new_password'

 

一般安装时用此方法设置.

方法2:
在mysql状态下:

1

2

 

mysql>UPDATE user SET password=PASSWORD('new_password') WHERE user='root';

mysql>FLUSH PRIVILEGES;

 

Method 3:

mysql>SET PASSWORD FOR root=PASSWORD('new_password');

4. 什么情况下会导致 MYSQL 数据库损坏和怎么修复 MYSQL

相关文章:
·水果别买PLU编码8开头的 买进口食品这些技巧要掌
·怎样导出高清视频 Xvid编码设置教程
·Win10卸载软件Skype错误代码2503的解决技巧
·调查显示美国半数高薪工作需要拥有的一种技能
·对建设项目投资项(或者成本项)信息进行编码
→ 特别推荐
水果别买PLU编码8开头
怎样导出高清视频
Win10卸载软件Skype错误
调查显示美国半数高
对建设项目投资项(
Docker社区核心成员D
《智能电视娱乐操控
栅格结构数据获取的
Css技巧:模块化编码
探秘最强大脑速成法
逆回购操作方法与技
矢量数据结构的编码
ffmpeg与H264编码 使用技
MYSQL数据库设计的一些
详解VB.NET动态编码技
→ 热点TOP10
[技巧]神秘代码
黑客技巧--深入
拉菲最新防伪
《纽约时报》
总结ERP之供应
[技巧] 如何在
C语言半协程编
单片机开发应
谈媒介语言建
[技巧] iPod视频

友情链接/网站合作咨询: