mysql 数据库原生语句介绍与示例

2017-06-09  本文已影响0人  gianna1030

数据库

关系性数据库

mysql 的最大的特点

1 .Mac 下安装mysql

去官网下 Mysql

​ ![](/Users/eternal/Desktop/屏幕快照 2017-06-07 14.40.59.png)

选择5.6 版本

5.7 版本默认开启

only_full_group_by 模块,此模块会导致 sql语句执行严格的group by 的模式,下面的例子会报错

select id ,name from user group by province ;//这样的语句报错;

解决方法是在字段前面加 any_value();
第二种方法是
 用命令行登录mySQL 执行以下命令
select @@sql_mode;
//查到的结果
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION;
然后找到 my.conf 文件
mysqld 这行要开启
粘贴上去
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION;
进行重启服务;
  
选择 5.6版本

![](/Users/eternal/Desktop/屏幕快照 2017-06-07 14.41.12.png)

执行安装

点击运行就行

执行更改密码命令

mysqladmin -uroot password  '新密码'

图形化界面去下载phpmyadmin 放到目录下面 就可以使用

2.mysql的sql 语句

Mysql -u 用户名 -p 进入
quit 退出
\g 写完了执行
\h 获得帮助
\c 清除已输入命令
?
Create database 创建数据库
Use database 使用数据库
Show databases 查看所有的库
Drop database 删掉数据库
desc 表名 查看表结构
show create table 表名 查看创建表的语句
alter table user add column sex int(3) after age; 给表增加字段
alter table user drop column sex int(3) after age; 删除表字段
alter table user change column sex int(3) after age;
alter table yinhangka rename bankcard;

delete from 表名 where id in(''); //in里面写值

​```

笛卡尔乘积(对两个表进行 的操作都叫做笛卡尔成绩)

(将表1 的所有字段1 对1 与表2 的所有字段都进行匹配)

select name from shop where price > 600 limit 2;

置顶的实现本质上是 先按置顶顺序排序,在按时间顺序排列

update tieze set zhidng =1 where

多表联合查询

内连接 Select 表字段 as 别名 from 表1,表2 where 条件 select user.uid,user.name,shopping.name,shopping.price from user,shopping where shopping.sid= user.sid;
内连接 Select 表.字段as 别from 表inner join 表2 on条件 select u.uid as uid,u.name as uname ,s.name as sname,s.price as price from user as u inner join shopping as s on u.sid =s.sid;
左关联 select 字段 from left join表2 on 条件 select u.uid as uid,u.name as uname ,s.name as sname,s.price as price from user as u inner join shopping as s on u.sid =s.sid; 以左边为主没匹配到的显示为空
右关联 select 字段 from left join表2 on 条件 select * from user right join shopping on user.sid =shopping.sid; 以右边为主,左表没匹配到的显示为空
Union 将结构相同的两次查询数据组合到一起 两个语句用union 连接起来
Union all 不会干掉重复数据

​ 内连接

select user.uid,user.name,shopping.name,shopping.price from user,shopping where shopping.sid= user.sid;
//内连接
select u.uid as uid,u.name as uname ,s.name as sname,s.price as price from user as u inner join shopping as s on u.sid =s.sid;

`

select u.uid as uid ,u.name as uname,s.name sname,s.price from user as u, shopping as s where s.sid =u.uid;

+-----+---------+-----------+---------+

| uid | uname | sname | price |

+-----+---------+-----------+---------+

| 1 | xiaobao | iphone7 | 1222222 |

| 2 | xiaohua | 汽车 | 131313 |

| 3 | xiaobao | 化妆品 | 31313 |

| 4 | xiaohua | 汽车 | 131313 |

+-----+---------+-----------+---------+

4 rows in set (0.00 sec)

了解的命令

命令 作用
FLush tables 刷新表
Grant all on 库.表 Grant . to'root'@ '%' identified by 'liwenkai'; %代表用户可以对任意电脑的ip进行登录,我们不这样写是不安全的
Show variables 查看用户服务器的状态
这些我们都可以通过phpMyAdmin 的创建用户账户界面来查看 只是了解

分库分表分机器

一张表拆成不同的表

User 1 处理效率提高

user 2

User 3

User 4

​ 可以分成不同的机器

​ 北京放到北京服务器

​ 河南放到河南服务器

上一篇下一篇

猜你喜欢

热点阅读