美文网首页
sql -------- mysql ---->免费开源的关系

sql -------- mysql ---->免费开源的关系

作者: 清茶也醉人Q | 来源:发表于2018-06-13 16:51 被阅读0次

    3W1H(what?why?when?how?)

    1、什么是数据库?DB

            数据库(database)数据存储的仓库,简称DB

            DBMS(databaseManagers)数据库管理的软件

    2、为什么学习数据库?

            方便存储使用数据

    3、数据库在软件开发的地位?

            数据存储层

    4、安装MySQL

    |-- window:

            1、使用压缩包安装需要把bin配置到环境变量path   注意解压路径不能包含特殊字符和中文

            2、以管理员身份打开cmd 切换盘符到 文件解压的那个盘符下  指令:盘符:

            3、

    此时是已经安装过mysql了

            4、重启 net start mysql

            5、mysql -h(ip地址)  -p(端口=3306)  -u(用户)  -p(密码)

            6、配置my.ini文件中的basedir 和 datadir

    |-- Linux

            1、sudo apt  install  mysql  --server mysql cilent 

            2、安装路径: /user/sbin     配置路径:/etc

            3、查看进程 ps -ef | grep mysql

                    安装ssh 指令 apt install openssh-server

                     which 应用名称  查看安装路径

            Linux下远程连接MySQL:

                    1、修改mysql库中user表中的host字段,有localhost %

                    2、修改/etc/mysql/mysql.conf.d/mysqld.cnf文件

                    3、重启mysql

            启动mysql的四个参数  -h主机(默认localhost)  -P端口(默认3306) -u用户  -p密码

    mysql在linux下是默认关闭远程连接的(安全)开启远程连接

                update mysql.user set host='%' where user="root"

                    linux将配置文件中mysql.cnf文件        /etc/mysql/mysql.conf.d/mysql.cnf        bind-address 注释掉

                     重启mysql            sudo service restart mysql                    ps -ef |grep mysql

    5、简单的MySQL的操作

            常见的DDL语句

                    show databases  查看所有数据库

    show databases

                 create database db_py  创建db_py数据库

                    drop databse  databaseName  删除数据库

                use db_py 使用db_py数据库

                    show tables 查看当前数据库下的表(还没有创建表)

                    创建表  

                  删除表 drop table tableName

                        drop table if exists 表名称        truncate [table] 表名称(删除后不可恢复)           delete from 表名(删除后有办法恢复)

                        desc tableName; 查看表结构

    6 Mysql的数据类型整数 

            int   浮点数 float decimal      字符串 char varchar    文本类型 text    

            日期 data(只能表示年月日)、time (只能表示时分秒)、datatime(年月日时分秒)

               binary 二进制    布尔 bit

    7、Mysql的创建、删除、授权用户(DBA)

            grant all[select,update,drop,create] on *.* to ‘用户名称’@’地址’ identified by 密码

        如: grant all on db_py1710.*  to  ‘cmt’@’%’  identified by  ‘cmtt’

        删除用户  use mysql      Delete from user where user=‘cmt’ and host=‘%’

    8、数据库的备份

                mysqldump 命令

                mysqldump –u root –p dbname > 保存路径.sql

                mysqldump –u root –p db_bbs > d:/db_bbs.bak.sql

                            [将数据库db_bbs以脚本的形式保存到D盘]

                            将sql脚本还原为数据库

                            mysql –u root –p dbname < 保存路径

    9、sql(CRUD 增删改查)

             插入一条数据 insert into tableName(字段1,字段2,,,) values(值1,值2,,,)

                         insert into t_stu values(null,'laowang',36);

                        insert into t_py1712 values(uuid(),'laowang',36);

    新建一个表主键id设置为字符串类型 可以使用uuid()

                     select * from tableName;

            删除一条数据  delete  from tableName where 条件;

           修改数据 update tableName set 字段1=‘’,字段2=‘’,,, where 条件

                             update t_py1712 set name='xiaoming' where age = 18;

            修改表结构 alter 

                            alter table t_py1712 add className varchar(10) not null; 增加一个字段

                                        alter table t_py1712 drop className; 删除字段

                                        alter table t_py1712 modify column age int default 18 not null;   修改字段

                查询select

                                  select name from t_py1712;

                               1、条件查询 

                                        关系运行符 > 、< 、=、>=、<= 、!=或者<>表示不等于

                                  where 查询

                                                  select * from t_py1712 where age > 23;

                                            select * from t_py1712 where age in(23,20);

                                    select * from t_py1712 where age between 20 and 30;

                            and   select * from t_py1712 where name='zhangsan' and age >21;

                                or                select * from t_py1712 where name='zhangsan' or age=21;

                                    is     select * from t_py1712 where name is null;

                                        is not null  select * from t_py1712 where name is not null;

                                 聚合函数 sum     select sum(age) from t_py1712;

                                                    select max(age) from t_py1712;  

                                                     select min(age) from t_py1712;

                                                     select avg(age) from t_py1712;

                             select count(age) from t_py1712;   统计这个表的总记录数

                                          as重命名 select name as n from t_py1712 as t_py;

                              模糊查询  like :            

                                                    select * from t_py1712 where name like 'l%';

                                                select * from t_py1712 where name like '%o%';

                                        select * from t_py1712 where name like '_i%';

    排序 order by          select* from 表名  where 条件 order by 字段名称 [asc|desc]

                                select * from t_py1712 where name like '%' order by age;

    分组 group by      查询部门员工的男女数量       SELECT sex, COUNT(*) from `user` GROUP BY sex

    Having 筛选

                    SELECT age,COUNT(age) from stu GROUP BY age HAVING COUNT(age)>1;

                      having 是分组后的筛选

    去重 distinct        select distinct 字段 from 表名;

                                                                        select distinct sex from t_py1712;

    Limit  分页显示

    Select * from users limit 0,10 #查询前十条数据

    Select * from users  limit (pageNow -1)*pageSize, pageSize

                    select * from t_py1712 limit 0,3;

    外键 foreign key 完成外键的约束

    CONSTRAINT FOREIGN key(新表的字段) REFERENCES  主表(引用字段)

    子查询    将一个查询结果作为条件的一部分写入到第二个sql中

    如 姓名为zs的用户的部门名称: Select deptname from dept where deptid = (select deptid from emp where empname = ‘zs’)

    多表关联—连接查询

    内连接查询(inner join)            等值查询        不等值查询           外连接查询(outer join)        左外连接(left join)

    右外连接(right join)                自然连接            交叉连接(cross join) # 笛卡尔积                    自连接

    字符串函数

    length、char_length、trim、substring、ascii、concat、upper、replace

                                                        select length((select name from t_py1712 where age = 22));

    数学函数

    ceil、floot、round、mod、sin、cos、sqrt

            1、format(x,y)  函数,功能是将一个数字x,保留y位小数,并且整数部分用逗号分隔千分位,小数部分进行四舍五入。

             2、abs();  求一个数的绝对值;absolute

              3、sqrt();求一个数的平方根。sqrt是sqruar(平方,矩形) ,root(根)的缩写。 select sqrt(9); ==3

              4、mod(x,y)  x除数,y被除数。结束是余数。select mod(10,3);===1

              5、ceil()  进一取整。    select ceil(5.1); ===6

                    floor()舍一取整     select floor(5.3);===5

                       这两个函数是镜子函数,比较有点意思。这两个函数并不进行四舍五入,比较强硬。

               6、rand()  顾名思义,是用来生成随机数用的。select rand();

                8、truncate(x,y)  比较霸道,不管四舍五入,直接把x,的y位小数直接干掉。 select truncate(1233.154585,3);==1233.154

                9、sign() 返回当前结果得符号,如果是负数返回-1,如果是0 返回0 如果是正数,返回1.

                10、power()  幂运算        select power(5,3);===125

    select ceil(5.1);

    日期函数

    Year、month、week、curdate、curtime、date_format str_to_date、now

    SELECT DATE_FORMAT(CURDATE(),'%Y年%m月%d日')

    表与表之间的关联关系: 在一对一的关联关系中,外键加在那个表中都行。        1:n   n:1    n:n

    相关文章

      网友评论

          本文标题:sql -------- mysql ---->免费开源的关系

          本文链接:https://www.haomeiwen.com/subject/rfxcoxtx.html