Mysql 入门学习

数据库基本操作

1.数据库
-  显示所有数据库 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”来排序,即升序。

表的联查

  1. 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
  1. 外连接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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值