您的位置:首页 > 数据库 > MySQL

mysql数据库的基本操作语句

2016-03-16 12:01 666 查看
用户管理:

1.新建用户:

>CREATE USER name IDENTIFIED BY'cc';
2.更改密码:
>SET PASSWORD FOR name=PASSWORD('123');
3.权限管理
>SHOW GRANTS FOR name;//查看name用户权限
>GRANT SELECT ON db_name.* TO name;//给name用户db_name数据库的所有权限
>REVOKE SELECT ON db_name.* TO name;//GRANT的反操作,去除权限;
一、数据库操作
1.查看数据库:
>SHOW DATABASES;

2.创建数据库:
>create database db_name;
3.使用数据库:
>use db_name;
4.删除数据库:
>drop database db_name;
二、创建表:
1.创建表:
>create table table_name(id tinyint unsigned not null auto_increment, //id值,无符号,非空,递增、唯一性可以做主键

>name VARCHAR(60) NOT NULL
>score tinyint unsigned not null defatlt 0,//设置默认列值
>PRIMARY KEY(id))ENGINE=InnoDB)//设置表的存储引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索
>DEFAULT charset=utf8;//设置默认的编码,防止数据库中文乱码

如果有条件的创建数据库表还可以使用 >CREATE TABLE IF NOT EXISTS tb_name(.....)
2.复制表:
>create table table_name select * from tb_name;
或者部分复制:

>create table tb_name2 select id,name from tb_name;
3.创建临时表
>create temporary table tb_name(这里和创建普通表一样);
4.查看数据库中可用的表:
>show tables;
5.查看表的结构:
>describe tb_name;

也可以使用;
>show columns in tb_name;//from也可以
6.删除表:
>drop[temporary] table [if exists] tb_name[,tb_name2...];

实例:
>drop table if exists tb_name;
7.表重命名:
>rename table name_old to name_new;
还可以使用:
>alter table tb_name ADD[change,rename,drop]...要更改的内容。。
>alter table tb_name add column address varchar(80) NOT NULL;
>alter table tb_name chage score score AMALLINT(4) NOT NULL;
四、插入数据:
1.插入数据:
insert into tb_name(id,name,score)VALUES(NULL,'张三',140),(NULL,'张四',178),(NULLL,'张五',134);
这里的插入多条数据直接在后面加上逗号,直接写入插入的数据即可;之间id是自增的列,可以不用写。

2.插入检索出来的数据:
>insert into tb_name(name,score) select name,score from tb_name2;
五、更新数据:
1.指定更新数据库:
>update tb_name set score= 289 WHERE id=2;

>update tablename set column name= new value [where conditon]

六、删除数据;
1.删除数据:
>delete from tb_name where id=3;

七、条件控制:
1.WHERE语句:
>select *from tb_name where id=3;

2.HAVING语句:
>select *from tb_table group by score HAVING count(*)>2

3.相关条件控制符:
=,>,<,<>,in(1,2,3...),BETWEEN a AND b,NOT,AND,OR

Linke()用法中 %为匹配任意,_匹配一个字符(可以是汉字)
IS NULL 控制检测
八、M有SQL的正则表达式:
1.Mysql支持REGEXP的正则表达式:
>select *from tb_name where name REGEXP `[A-D]`//找出以A-D为开头的name

2.特殊字符需要转义
九、MySQL的一些函数:
1.字符串连接--CONCAT()

>select concat(name,'=>',score) from tb_name

2.数字函数:
AVG,SUM,MAX,MIN,COUNT;

3.文本处理函数:
TRIM,LOCATE,UPPER,LOWER,SUBSTRING

4.运算符:
+,-,*,\
5.时间函数;
DATE(),CURTIME(),DAY(),YEAR(),NOW().....
十、分组查询:
1.分组查询可以按照指定的列进行分组:
>select count(*) from tb_name GROUP BY score HABING COUNT(*)>1;

2.条件使用HAVING;
3.ORDER BY 排序:
ORDER BY DESC|ASC =>按数据的降序和升序排列

十一、UNION 规则--可以执行两个语句(可以去除重复行)
十二、全文检索--MATCH和AGAINST
1.select match(note_text)AGAINST('PICASO') FROM TB_NAME;

2.innoDB引擎不支持全文检索,MyISAM可以;
十三、视图
1.创建视图
>create view name as select *from tb_name where ~~ order by ~~;

2视图的特殊作用:
a.简化表之间的联结(把联结写在select中);

b.重新格式化输出检索的数据

c.过滤不想要的数据(select部分)

d.使用视图计算字段值,如汇总这样的值。

十四、使用存储过程:
个人理解,存储过程就是一个自定义函数,有局部变量参数,可传入参数,可以返回值
1.创建存储过程:
>create procedure pro(
>IN num INT,OUT total INT)

>BEGIN

>SELECT SUM(score) INTO total FROM tb_name WHERE id=num;

>END;

***这里的 IN(传递一个值给存储过程)、OUT(从存储过程传一个值),
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: