MySQL数据库二:常用命令和SQL语法

2017-12-13  本文已影响37人  苏木logwood

Linux命令补充:

Windows和Linux之间是rz sz
scp:
A机器(Linux)将文件或者文件夹传到B机器(Linux)
scp xxx.log root@xxx.xxx.xxx.xxxIP地址:/xxx/xxx
scp -r /xxx root@xxx.xxx.xxx.xxxIP地址:/xxx/xxx
A机器用xxx用户发送:
    scp xxx.log IP地址:/xxx/xxx
    等价于
    scp xxx@IP地址:/xxxx/xxxx
软连接:
路径:
    绝对路径:cd /xxx/xxx/xxx
    相对路径:cd xxxx
ln -s 实际路径 软连接路径(最好使用绝对路径)

MySQL的基本概念:

database db :数据库
table : 表
db1:t1, t2, t3
db2:t2, t3, t4
字段类型:
http://www.runoob.com/mysql/mysql-data-types.html
整数型:int
小数型:float/double
字符:char
字符串:varchar
时间:timestamp
常规命令:
使用某个数据库:
        use 数据库名;
查看数据库下面所有的表:
        show tables;
查看某个表的表结构:
        show create table 表名;
创建数据库:
        create database 数据库名;
创建表:
    create table 数据库名.表名(字段 类型,……)
    例如:
        create table user(
            id int,
            name varchar(128),
            memory double,
            sex char(1),
            do varchar(100),
            cretime timestamp
        )CHARSET=utf8;
删除表:
        drop table 表名;
插入数据:
insert into 数据库名.表名(列名) values(对应的值);
例如:
    insert into user(id,name,memory,sex,do,cretime) values(1,'小米',10.22,'b','在打游戏','2017-12-11 00:00:00');

    insert into user values(1,'小米',10.22,'b','在打游戏','2017-12-11 00:00:00');

    insert into user(id, name) values(1,'小米');
查询:
select 字段 from 数据库名.表名;
例如:
    select * from user;
    select * from user where id=3;
    *:查询所有的列
更新:
update 数据库名.表名 set 字段名称=新的值
例如:
    update user set sex='g' where id=1;修改id为1的数据

    update user set sex='g';修改全部的行
删除:
delete from 数据库名.表名
例如:
    delete from user;删除所有的数据,慎用
    delete from user where id=3;删除id为3的数据
排序:
order by xxx desc | asc
例如:
    select * from user order by cretime 

    select * from user order by cretime desc; 
    select * from user order by cretime asc;
只取多少行数据:
limit n
例如:
    select * from user limit 2;
聚合语法:
select 列1,列2……,sum(memory) from user group by 列1,列2…… having sum(memory) > 3000
聚合函数:
count() : 求数量
sum() : 求和
avg() : 求平均
字段别名:
as xxx
等价SQl:使用子查询语法
select * from(select dept, sum(sal) as sum_sal from salary group by dept) t where t.sum_sql > 5000;
两张表关联:
左连接:
    A left join B on A.字段=B.字段  工作中用的最多 A表数据最全 <-- B表补全
    
右连接:
    A right join B on A.字段=B.字段     A表补全 --> B表数据最全
    
内连接:
    A inner join B on A.字段=B.字段  慎用
    
注意点:
    只要满足on条件,有几行算几行
    
例如:
    select a.* b.deptno,b.dname from emp a left join dept b on a.deptno=b.deptno;

    select a.* b.deptno,b.dname from emp a right join dept b on a.deptno=b.deptno;
创建db,user
create database 数据库名;
grant all privileges on 数据库名.* to 某个用户名@'%' identified by '密码';
flush privileges;

注意点:
    只要涉及权限修改,必须执行flush privileges;

    % 允许所有的IP都可以访问(权限危险)
    192.168.%.%
    创建用户并授权,同时限制只能在某个IP或者IP段上的机器才能访问

    谨记:
        flush privileges; 或者重启MySQL服务
    
补充点:
    1.登录
        mysql -uroot -p123456 -h127.0.0.1
    2.dbeaver(企业使用的软件)
mysqladmin环境变量
vi .bash_profile
    # .bash_profile
    # Get the aliases and functions

    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi

    # User specific environment and startup programs
    export MYSQL_BASE=/usr/local/mysql
    export PATH=${MYSQL_BASE}/bin:$PATH

    PS1=`uname -n`":"'$USER'":"'$PWD'":>"; export PS1

作业:

0. MySQL部署好
1. db,table创建、删除?
2. 增删改查sql语法?
3. 保留两位小数,怎么做?(拓展)
4. 聚合+ join 语法 

拓展:

1. 表的字段的自增长 
2. 表的约束: 主键、唯一、为空
3. 表的索引(查询更快)有哪些、怎样创建

【来自@若泽大数据】

上一篇下一篇

猜你喜欢

热点阅读