A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

mysql单表

数据库:                        文件系统,通过SQL语言获取数据.
关系型数据库:        保存的就是实体之间的关系.(一对多的关系)
类:                                描述事物属性的集合.
Mysql默认:                UTF8;
命令行默认:                gbk;
dos命令行:                重启         net stop mysql        exit退出
运行:                        重启        services.msc
自动增长:                auto_increment.  int可以为null因为会自动为它设置值;
1.         mysql的安装
​        1.        mysql的端口号(port)3306
​        2.         运行 + services.msc        mysql启动/停止服务
​        3.         windows + R                  dos命令行
​        4.         32位的mysql登陆密码 :         123
2.        mysql的存储方式
​        1.        服务器:硬件/软件. 硬件:一台计算机 .软件:电脑上安装数据库服务器,允许别人访问
​        2.        一台电脑如果安装了mysql.这台电脑就是mysql数据库服务.
​        3.        mysql -u root -p;        -h:hostname主机名;-p:port
​        4.        数据库 > 表 > 记录                        用户类,产品类,订单oder类,  类中包含各种属性.
​                一个项目创建一个数据库,一个实体(类)创建一个表(表中包含属性字段),一个对象的实例添加一个新记录.
​                横向: 一条记录对应一个用户对象.
​                一般用"表"储存数据.
​        5.        CRUD:增删改查
3 .        SQL概述
​        1.        结构化查询语言
​        2.        分类:        DDL        数据定义语言,Create,Drop,Alter
​                                DCL                数据控制语言,if,grant
​                                DML        数据操纵语言,insert插入,update,delete
​                                DQL        数据查询语言,select
4 .        SQL-数据库-增删改查
​        1.        新增:        create  database 数据库名称【 character set 字符集 collate 字符集校对规则】可以省略        校对:        排序作用        
​        2.        查看所有数据库:        show databases;        查看某个数据库的定义信息:show create database 数据库名称;
​        3.        修改:        alter database 数据库名称 character 字符集 collate校对规则
​        4.        删除:        drop database 数据库名称
​        5.        数据库切换:                use 数据库名称
​        6.        查看当前的数据库:        select database();
5 .        表
​        ▲1 .        增:        create table 表名称(                                
​                                字段名称 字段类型(长度) 约束,
​                                字段名称 字段类型(长度) 约束,
​                                字段名称 字段类型(长度) 约束
​                        );        
​                长度:int不写长度,char,varchar写长度.                约束:对字段约束.保证数据完整性.
​                自动增长:auto_increment.
​        约束:
​                        主键约束:         primary key        唯一非空,如:学号
​                        唯一约束:        unique                 如:用户名
​                        非空约束:        not null                不能为空
​        Java类型:                                                Mysql类型:
​                byte/short/int/long                                tinyint/smallint/int/bigint
​                char/String                                                char固定长度/varchar长度可变
​                date                                                        datetime 存入null/timestamp存入当前时间
​                File                                                                BLOB/TEXT
​                float                                                        float
​                double                                                        double
​                boolean                                                        bit(0 , 1)        
​        2 .        查:        show tables;
​                        desc 表名;        结构信息
​        3 .        删:        drop table 表名;
​        4 .        修:        
​                        ▲1 .        添加列(字段)
​                                        alter table 表名 add 列名 类型(长度) 约束.
​                        ▲2 .        修改类型长度约束
​                                        alter table 表名 modify 列名 类型(长度) 约束;
​                        3 .        删除列
​                                        alter table 表名 drop 列名;
​                        4 .        修改列名(属性名)        
​                                        alter table 表名 change 旧列名 新列名 类型(长度) 约束;表名(类名)
​                        5 .        修改表名(类名)
​                                        rename table 表名 to 新表名;
​                        6 .        修改字符集
​                                        alter table 表名 character set 字符集;
▲6 .        记录
​        1 .        SQL给表添加记录:
​                        某些列赋值:        insert into 表名 (列名1,列名2,列名3...) values (值1,值2,值3...);
​                        所有列赋值:        insert into 表名 values (值1,值2,值3...);
​                        注意:                值类型是字符串/日期,使用单引号.
​                        中文乱码:        Mysql在内部可以把gbk转为utf8;                my.ini文件utf8改为gbk;
​        2 .        修改记录
​                        update 表名 set 列名=值,列名=值 [where 条件];---值和where没有逗号;
​                        update user set password='abc' where password='123';
​        3 .        删除记录
​                        delete from 表名 [where 条件];
​                        delete from user where id=2;
​                        删除一行记录,        不加条件,默认删除所有记录.
​                        删除表中记录的两种做法:
​                                        delete from user;逐条删除,可以恢复rollback;
​                                        truncate table user;全部删除,重新创建不可恢复
​        ▲4 .        查看记录
​                                基本查询:
​                                        select[distinct]*|列名 from 表 [条件];
​                                        select * from 表名;
​                                        select name,english from 表名;
​                                        select distinct english from 表名;多个字段,都相同才会去重;
​                                        select name,english+chinese+math from exam;
​                                        select name,english+chinese+math as sum from exam;别名查询a   s可省.
​                                条件查询:        
​                                        select * from exam where name='李四';
​                                        select * from exam where name='李四' and english > 90;
​                                        select * from exam where name like '李%';        _代表一个字符.
​                                        select * from exam where english in (69,75,89);英语等于
​                                        使用where子句
​                                         > , < , >= ,<= , <> ,=
​                                        like:模糊查询
​                                        in:范围查询
​                                        条件关联:and , or,not
​                                排序查询:
​                                        order by 字段名 asc/desc
​                                        select * from exam order by chinese;asc默认升序可以加asc
​                                        select * from exam order by chinese desc;从大到小,倒序
​                                        select * from exam order by chinese desc, english asc;语文倒序,成绩相同,英语倒序.
​                                        select * from exam where name like '李%' order by english desc;姓李的学生,英语倒序.
​                                分组统计查询:
​                                        聚合函数:        sum();        count()分页        max()        min()a        vg()
​                                        select sum(english) from exam;
​                                        select sum(english) ,sum(math) from exam;
​                                        select sum(english) from exam where name like '李&';
​                                        select sum(english)+sum(chinese)+sum(math) from exam;竖着加
​                                        select sum(english+chinese+math) from exam;横着加,ifnull
​                                        select sum(ifnull(english,0)+chinese+math) from exam;把null值当成0ifnull(english,0)
​                                        select count(*) from exam;
​                                        select count(*) from exam where name like '李%';
​                                        select max(math) from exam;
​                                        select min(chinese) from exam;
​                                        select avg(chinese) from exam;
​                        分组查询:
​                                group by 字段名;                where 后面不能跟聚合函数;
​                                总结:        S(select)...F(from)...W(where)...G(group by)...H(having)...O(oder by)
​                                select product, count(*) from orderitem group by product;按商品名称统计,每类商品个数.
​                                select product, sum(price) from orderitem  group by product;
​                                select product, sum(price) from orderitem group by product having sum(price) >5000;
​                                select product,sum(price) from orderitem group by product having sum(price)>5000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .                                order by sum(price) asc;               
7 .        重置MySQL密码
​                停止MySQL服务---无需权限认证的启动---登陆MySQL无需密码---修改root密码---结束mysqld进程
8 .数据库备份还原
​                备份:
​                还原:



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马