本帖最后由 849618121 于 2018-12-10 17:27 编辑  
 
-- 对数据库 -- 
SHOW DATABASES;-- 查询数据库 
SELECT DATABASE();-- 查当前数据库 
SHOW CREATE DATABASE test01;-- 查指定数据库 
CREATE DATABASE test01 CHARACTER SET utf8;-- 增数据库 
DROP DATABASE test;-- 删除数据库 
USE test01;-- 使用数据库 
-- 对数据库 -- 
-- 对表 -- 
CREATE TABLE t01(id INT,姓名 VARCHAR(32));-- 增表创建表 
DROP TABLE t01;-- 删除表 
RENAME TABLE t01 TO t;-- 改表名 
SHOW DATABASES;-- 查所有表 
SELECT * FROM t01 AS 表01;-- 查表用别名 
DESC t01; -- 查表结构 
ALTER TABLE t01 ADD 性别 VARCHAR(32) ;-- 增列-- 修改表结构 -- 
ALTER TABLE t01 MODIFY 性别 CHAR(1);-- 改列的类型 
ALTER TABLE t01 CHANGE 性别 sex CHAR(1);-- 改列名和类型 
ALTER TABLE t01 CHARACTER SET utf8;-- 改列编码 
ALTER TABLE t01 DROP sex;-- 删列 
SELECT id FROM t01;-- 查列-- 修改表结构 --  
-- 对表 -- 
-- 对数据 -- 
INSERT INTO t01(id,姓名)VALUES(1,'张三丰'),(2,'张无忌');-- 增数据 
INSERT INTO t01 VALUES(3,'火云邪神');-- 增数据 
UPDATE t01 SET 姓名='黄蓉' WHERE id=1;-- 改数据 
DELETE FROM t01 WHERE 姓名='黄蓉';-- 删数据不清空自动增长 
TRUNCATE TABLE t01;-- 重置清空自动增长 
SELECT * FROM t01;-- 查表中所有数据 
SELECT * FROM t01 WHERE 姓名 LIKE '张%';-- 查姓张的模糊 
SELECT DISTINCT FROM id,姓名 FROM t;-- 查去重 
SELECT id AS 学号 FROM t01;-- 查列别名 
SELECT id FROM t01 WHERE id=1;-- 查询条件 
SELECT id,姓名 FROM t ORDER BY id DESC;-- 查询降序 
SELECT id,姓名 FROM t GROUP BY id;-- 查询分组 
 
                MySQl的服务启动/关闭  
                        1 手动 任务管理器 服务 找到MySql 
                        2 cmd--> services.msc 打开服务的窗口 
                        3 用管理员打开cmd          
                                启动服务 net start mysql  
                                停止服务 net stop mysql  
        查看状态 
                1 win+R services.msc 
                2 netstart -ano查看本机配置 
                3 netstart -ano | findStr"3306"找到PID然后去任务管理器结束进程 
        开启服务 
                net start mysql 
        关闭服务 
                1 net stop mysql 正常关闭 
                2 管理员运行cmd taskkill /F /PID 6979 通过任务管理器PID强制关闭 
                exit 
通过IP地址访问 
        mysql -h127.0.0.1 -uroot -p (quit/exit退出2方式) 
        mysql --host=IP --user=root --password==链接目标的密码 
MySql目录结构 
        1 MySql安装目录  
                bin二进制可执行文件 data数据目录 数据文件 日志文件 include C语言的信息 lib目录 /shareMySql错误目录  
                my.ini核心配置文件 
        2 MySql数据目录  
                C盘 隐藏文件夹 data 下 数据库文件夹 下 表  
                几个概念 
                        数据库:文件夹 
                        表:文件 
                        数据: 
SQL操作 SQL是一种规则 
        1 什么是SQL? 
                翻译过来是:架构化查询语言! 
                其实就是定义了操作所有关系型数据库的规则, 
                SQL是一种规则,只要是关系型数据库都能用SQL操作, 
                每一种数据库操作的方式存在不一样的方式,称之为“方言” 
        2 基本通用语法 
                1* SQL语句可以单行或多行书写,以分号结尾,遇到分号才会结束。 
                2 可以用空格和缩进增强语句的可读性show databases; 
                3* MySql数据库的SQL语句不区分大小写 关键字建议区分大小写 最好大写 
                4* 3种注释 
                        单行注释 show databases;-- 查询所有语句名称 必须加空格 常用这种 
                                                #查询所有语句名称 #可以不加空格 
                        多行注释 show databases;/*查询所有语句名称*/ 
        3* SQL分类(面试)4大类 
                1 DDL 客户端访问 操作数据库和表的 对数据库和表的增删改查  
                        **对数据库CRUD增删改查 
                                1 C(Create):创建数据库的3方式 
                                        创建数据库: 
                                                create database 数据库名;-- 创建新的数据库 
                                        创建数据库判断不存在在创建: 
                                                create database if not exists 数据库名;-- 判断如果不存在就创建 
                                        创建数据库并指定字符集 
                                                create database 名 character set utf8;-- 创建库设置字符集 
                                2 R(Retrieve):查询数据库 
                                        查询所有数据库的名称 
                                                show databases;-- 查看所有数据库 
                                                        infofmation_schena 
                                                        mysql核心数据库很多表 
                                                        performance_schena性能 
                                                        test空的数据库 
                                                show create database (mysql数据库的名称);-- 查看对应的数据库的字符集 
                                3 U(Update):修改数据库 
                                        修改数据库的字符集 
                                                alter database 数据库名 chatacter set 字符集; 
                                4 D(Delete):删除数据库 
                                        删除数据库 
                                                 database 数据库名称; 
                                        判断数据库是否存在,存在在删除 
                                                drop database if exists 数据库名; 
                                5 使用数据库 
                                        查询当前正在使用的数据库名称 
                                                select database(); 
                                        使用数据库 
                                                use 数据库名称; 
                        **对表的操作 
                                查询表的操作 
                                1 C(Create):创建表 
                                        1 基本语法:create table 表名(列名和列对应的类型); 
                                                create table 表名( 
                                                        列名1 数据类型1, 
                                                        列名1 数据类型1, 
                                                        列名1 数据类型1 
                                                ); 
                                                最后一列不要加逗号(,) 
                                        数据类型 
                                                1 int整数类型 
                                                        age int, 
                                                2 double小数类型 
                                                        score double(5一共最多有几位,小数点后保留几位2) 
                                                3 date日期类型 yyyy-MM-dd 
                                                4 datetime日期类型 yyyy-MM-dd HH:mm:ss 
                                                5 timestamp时间错类型 yyyy-MM-dd HH:mm:ss 
                                                        如果将来不给这个字段复制,或赋值null,则默认用当前系统的时间赋值 
                                                6 varchar:字符串类型 
                                                        name varchar(20)姓名最大20个字符 
                                                        char(11)和varchar(11)区别 
                                                                存入长度不能超出指定长度 
                                                                char长度会把长度固定 长度不足的用空格自动补满 
                                                                varchar不超范围根据文本类容改变 
                                                        test        超大文本/文本文件的保存 
                                        复制表create table stu like student; 
                                2 R(Retrieve):查询表 
                                        查询某个数据库中所有的表名称 
                                                show tables; 
                                        查询表结构 
                                                desc 表名;看表结构的类型的 
                                                show create table 表名;命令行下  
                                3 U(Update):修改表 
                                        1 修改表名 
                                                rename table 表名 to 新的表名; 
                                                alter table 表名 to 新的表名; 
                                        2 修改表的字符集 
                                                alter table 表名 character set 字符集名称; 
                                        3 添加一列 
                                                alter table 表名 add 列明 数据类型 约束; 
                                        4 修改列的名称和类型 
                                                改类型和名字alter table 表名 change 列名 新列名 新数据类型; 
                                                只改类型        alter table 表名 modify 列名 新数据类型; 
                                        5 删除列 
                                                alter table 表名 drop 列名; 
                                4 D(Delete):删除表 
                                        drop table 表名 ;不确定直接写这个 
                                        drop table if exists 表名 ; 
                         
                2* DML 客户端访问 删改表中的数据 *常用  
                        客户端图形化工具SQLyog 
                                1 增 添加数据  
                                        语法: 
                                        1 insert into 表名(列名1 数据类型,列名2 数据类型,列名n 数据类型) values(1,“张无忌”,18); 
                                        2 INSERT INTO 表名 VALUES(值1,值2,...,值N); 
                                        注意事项 
                                                1 列名和值要一一对应 
                                                2 如果表名后不定义列名,则默认给所有列添加值 
                                                3 除了数字类型,其他类型需要引号(单双都可以)引起来 
                                2 删 删除数据**  
                                        语法格式 
                                        1 删除部分数据 
                                                DELETE FROM 表名 WHERE 条件; 
                                                当WHERE的条件满足就从表里删除数据 
                                        2 删除表内所有数据 
                                                --DELETE是一条条删除,不会清空AUTO_INCREMENT 
                                                DELETE FROM 表名; 
                                                 
                                                --直接将表删除,重建,AUTO_INCREMENT重置为0 
                                                TRUNCATE TABLE 表名;  
                                        注意 
                                        1 如果不加条件,则删除表中所有记录 
                                        2 truncate table 表名:-- 删除表,然后再创建一个一模一样的空表 
                                                delete from 表名 where 条件;-- 不推荐使用 ,有多少记录就会执行多少次删除操作 
                                                        -->dml可以还原 因为id不会被覆盖 (可以通过事务进行还原 
                                                truncate table 表名; 推荐使用,效率高,先删除表在创建一模一样 
                                                        -->ddl不可以还原 id被彻底删了 (不可以通过事务还原 
                                3 改 修改数据   
                                        语法格式 
                                        update 表名 set 列名1 = 值1,列名2 = 值2 [where 条件]; 
                                        UPDATE 表名 SET 列名1=值1,列名2=值2,...,列名n=值n WHERE 条件; 
                                                例子:UPDATE stu SET age = 117 WHERE id = 3; 
                                        注意  
                                                如果不加任何条件,则会将表中所有记录修改,字符串的值加引号 
                3* DQL 客户端访问 查询表中的数据 *常用  
                        查询表中的记录-->select * from 表名; 
                                * select * from 表名; 
                        (单表)基本        条件         去重         去重        分组         排序                  分页        模糊  
                                        select        where        distinct        having        order by [asc/desc]        limit        like%/_ 
                        1.语法: 
                                select字段列表 
                                from表名列表 
                                where条件列表 
                                group by+列名 分组查询 割肉破 败 
                                having分组之后的条件 
                                order by+列名+[asc/desc]排序 奥德 败 写在代数第二 倒数第一是注释 
                                limit分页限定 
                                注释 
                        2.基础查询 
                                1.多个字段的查询 
                                        select 字段名 FROM 表名; 
                                        * 注意 
                                                * 如果查询所有字段,则可以使用*来替代字段列表。 
                                2.去除重复        distinct 带思停克特 
                                        * 写在列名前面,列名都重复才会去重 
                                3.计算列 
                                        * 一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算) 
                                        * ifnull(表达式1,表达式2); 
                                                *表达式1:哪个字段需要判断是否为null 
                                                *如果该字段为mull后的替换之 
                                4.起别名 
                                        预防直接中文乱码 as成中文 在查询 也可以用空格代替 
                                        *as:as也可以省略 
                        3.条件查询 
                                1.where子句后跟条件 
                                2.运算符 
                                        * <>是不等于 =是等于 
                                        * AND/OR  
                                         
                                        * between...and... 区间范围 WHERE后写 
                                        * between...or... 没交集 在什么或者什么 
                                        * is null/ is not null 是否为null/是否不为null 
                                        * in(集合)匹配指定元素 
                                        * like '%张%'模糊查询         
                                                %代表0或者多个字符        张XX '张%' X德X '%德%' 
                                                _代表单个字符        张X  '_化%' 
                                                where 列名 LIKE '张%' AND ...; 
                4 DCL 客户端访问 授权的 用于权限和安全访问的操作 (开发没关系 是运维用的 
                        查询语句 
                        1排序查询 
                                * 语法:order by 子句 
                                        * order by 排序字段1 排序方式1,... 
                                        SELECT * FROM 表 ORDER BY 列 -- 排列方式; 
                                * 排序方式: 
                                        * ASC:升序,默认的。 
                                                SELECT * FROM 表 ORDER BY 列1 ASC,列2 ASC; 
                                        * DESC:降序。 
                                                SELECT * FROM 表 ORDER BY 列 DESC; 
                                * 注意: 
                                        * 如果有多个排序条件,则当前面的条件值一样时,才会判断第二条件 
                        2聚合函数--通常配合分组进行操作,将一列数据作为一个整体,进行整体排序 
                                * 语法: 
                                        1 count计算个数 
                                                格式:SELECT COUNT(列) FROM 表; 
                                                主键 id 
                                                count 
                                        2 max计算最大值 
                                        3 min计算最小值 
                                        4 sum计算和 
                                        5 avg计算平均值 
                                * 注意:聚合函数的计算会排除null 
                                        解决方案: 
                                                1 选择不包含非空的列计算(主键) 
                                                2 IFNULL函数 
                        3分组查询 GROUP BY 
                                1 语法: 
                                        格式:SELECT (分组/聚合) FROM 表 GROUP BY 列; 
                                2 注意: 
                                        分组之后查询的字段:分组字段、聚合函数 
                                        where和having区别 
                                                where在分组之前进行筛选限定,如果不满足条件,不参与分组 
                                                        having在分组之后进行二次筛选,如果不满足结果,则不会被查询出来 
                                                where后不能跟聚合函数/having可以进行聚合函数的判断 
                        4分页查询 
                                1 语法:limit 开始的索引,每页查询的条数; 
                                        SELECT * FROM 表 LIMIT 0,3;-- 第1页从0开始查到3 
                                        SELECT * FROM 表 LIMIT 3,3;-- 第2页开始索引是3查寻3条 
                                2 公式;开始的索引 = (当前页码 -1) * 每页显示的条数 
                                3 limit是一个MySql‘方言’ 
                 
                 
                 
                 
        2非关系型数据库 
前端  
        html  
        css  
        js  
        jquery框架 
                ajax 
后台 
        servlet 
        requert&response 
        cookie&session 
        jsp& el&jstl 
        listeneer&filter 
 
服务器 
        tomcat 
项目管理工具 
        maven 
         |   
        
 
    
    
    
     
 
 |