Mysql 入门学习
2016-01-13 15:43
495 查看
数据库基本操作
1.数据库
< cf38 code>- 显示所有数据库 show databases; - 创建数据库 create database <数据库名dname> - 创建数据库并分配用户:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码'; SET PASSWORD FOR '数据库名'@'localhost' = OLD_PASSWORD('密码');引用块内容
- 选中数据库 use <dname> - 删除数据库 drop database <dname> / drop database if exist <dname> - 显示当前连接 select database();
2.数据表
- 创建表 create table命令格式:create table <表名> (<字段名1> <类型1> [,..<字段名n> <类型n>]);
mysql> create table MyClass( > id int(4) not null primary key auto_increment, > name char(20) not null, > sex int(4) not null default '0', > degree double(16,2));
- 显示表结构 desc <tname> / show clumns from <tname> - 修改表
mysql> alter table MyClass add passtest int(4) default '0'; 1) 加索引 mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]); mysql> alter table employee add index emp_name (name); 2) 加主关键字的索引 mysql> alter table 表名 add primary key (字段名); mysql> alter table employee add primary key(id); 3) 加唯一限制条件的索引 mysql> alter table 表名 add unique 索引名 (字段名); mysql> alter table employee add unique emp_name2(cardnumber); 4) 删除某个索引 mysql> alter table 表名 drop index 索引名; mysql>alter table employee drop index emp_name; 5) 增加字段 mysql> ALTER TABLE table_name ADD field_name field_type; 6) 修改原字段名称及类型 mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type; 7) 删除字段 MySQL ALTER TABLE table_name DROP field_name;
- 插入表数据 insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59); - 更新表数据 update MyClass set name='Mary' where id=1; - 删除表数据 delete from MyClass where id=1;
3.备份数据库
mysqldump命令用来备份数据库。(mysqldump 要在系统命令下执行) 1) 导出整个数据库(导出文件默认是存在mysql\bin目录下) mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u user_name -p123456 database_name > outfile_name.sql 2) 导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u user_name -p database_name table_name > outfile_name.sql 3) 导出一个数据库结构 mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql -d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table 4) 带语言参数导出 mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql
4.关于查询
下面是关于mysql基础查询的一般语法,正常的查询都可以通过以下的SQL完成。 mysql中不区分大小写,但查询关键字建议使用大写(查询优化)。
select 属性列表 from 表名和视图列表 [where 条件表达式] [group by 属性名[having 条件表达式]] [order by 属性名[asc|desc]] [limit <offset>,row count]
说明: where子句:按照“条件表达式”指定的条件进行查询。 group by子句:按照“属性名”指定的字段进行分组。 having子句:有group by才能having子句,只有满足“条件表达式”中指定的条件的才能够输出。 group by子句通常和count()、sum()等聚合函数一起使用。 order by子句:按照“属性名”指定的字段进行排序。排序方式由“asc”和“desc”两个参数指出,默认是按照“asc”来排序,即升序。
表的联查
join 内连接
SELECT d. NAME, SUM(d.number) AS count, d. CODE, d.unit FROM wdgj_inventory_in IN JOIN wdgj_inventory_in_detail d ON IN .id = d.inventory_in_id AND IN .reason_in = 3
外连接left join / right join
SELECT a.name,b.age FROM a LEFT OUT JOIN b ON a.id = b.uid
UNION合并结果集
使用UNION关键字,合并结果时,两个查询对应的列数和数据类型必须相同。 各个SELECT语句之间使用UNION或UNION ALL关键字分隔 UNION:执行的时候删除重复的记录,所有返回的行都是唯一的 UNION ALL:不删除重复行也不对结果进行自动排序
SELECT f.name ,f.price FROM apple f WHERE f_price<9.0 UNION SELECT p.name,p.price FROM pear p WHERE p_id IN (101,103)
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- Android之获取手机上的图片和视频缩略图thumbnails
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- 数据库链接字符串查询网站
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法