首页新闻动态正文

数据库【黑马java培训】

更新时间:2019年07月26日 10时55分55秒 来源:黑马程序员论坛

-- mysql有一个配置文件很重要my.ini,mysql是一种关系型数据库,所以支持sql语句的规范
-- 一条语句以分号结尾, 关键词建议大写, sql不区分大小写, 注释三种(单行注释:--空格,#,多行注释/*注释内容*/)
/*
        DDL:数据库定义语言,专门操作数据库和表的增删改查
                create(增加),drop(删除),alter(修改),show(查询)
        DML:数据库操作语言,专门针对表中的数据的增删改
                update delete insert
        DQL:数据库查询语言,专门针对表中数据的查询
                select
        DCL:数据库控制语言,专门用来创建用户,删除用户, 授权, 撤权
                grant
*/
/*************************DDL语句*********************************/
/*-------数据库的操作---------*/
-- 创建数据库(!!!!!!!!!!!!!!!!!!)
CREATE DATABASE db1;
-- 了解内容
-- 查询数据库
SHOW DATABASES;
-- 指定字符串创建数据库---有些数据库的编码指定是utf-8有些是utf8
CREATE DATABASE db2 CHARACTER SET utf8;
-- 查询数据库的创建语句
SHOW CREATE DATABASE db2;
-- 判断是否存在
CREATE DATABASE IF NOT EXISTS db3;
-- 删除数据库
DROP DATABASE db2;
-- 修改数据库,编码
ALTER DATABASE db2 CHARACTER SET gbk;
SHOW CREATE DATABASE db2;
-- 使用数据库(!!!!!!!!!!!!!!!!!!)
USE db3;
/*-------表的操作---------*/
-- 查询所有的表
SHOW TABLES;
-- 查询表的结构
DESC HOST;
/*
        int 整数
        double小数
        date年月日
        datatime年月日时分秒
        timestamp时间蹉
        varchar字符串
        注意 char和varchar的区别: varchar是可以变的,char是固定的, varchar更省空间
        创建表的格式:
                create table 表明(
                        字段名 字段类型 约束,
                        字段名 字段类型 约束,
                        ....
                        字段名 字段类型 约束 (最后一个字段不加逗号)
                       
                );
*/
-- 创建学生成绩表(!!!!!!!!!!!!!!!!!!)
CREATE TABLE student_score(
        id INT,
        NAME VARCHAR(32), -- varchar必须指定长度
        chinese DOUBLE(4,1),  -- double(总位数,小数的个数),也可以不填
        math DOUBLE(4,1),
        english DOUBLE
);
-- 删除表(建议少用或者不用)
DROP TABLE student_score;
-- 修改表名
ALTER TABLE student_score RENAME TO stu_score;
-- 修改name的长度为10 ---->MODIFY只能修改类型(!!!!!!!!!!!!!!!!!!)
ALTER TABLE stu_score MODIFY NAME VARCHAR(10);
-- 将name这个字段名字改成sname--->CHANGE可以改名字还可以改类型(!!!!!!!!!!!!!!!!!!)
ALTER TABLE stu_score CHANGE NAME sname VARCHAR(10);
-- 添加一列"所属班级"--->ADD(!!!!!!!!!!!!!!!!!!)
ALTER TABLE stu_score ADD class VARCHAR(20);
ALTER TABLE stu_score ADD aaa VARCHAR(20);
-- 删除表中的aaa这一列--->DROP(!!!!!!!!!!!!!!!!!!)
ALTER TABLE stu_score DROP aaa;

/*************************DML语句*********************************/
/*-------表的数据的添加INSERT---------*/
/*
格式: insert into 表名(列名的列表) values(列值的列表)
简化格式: insert into 表名 values(所有列的列值列表)
批量插入格式: insert into 表名 values(所有列的列值列表),(所有列的列值列表),(所有列的列值列表)....
注意: 列名和列值要一一对应(不仅个数一样,类型也要一样)
*/

-- 采用标准格式插入
INSERT INTO stu_score (id,sname,chinese,math,english,class) VALUES(1,'梅军建',100,100,100,'一班');
-- 采用省略格式插入
INSERT INTO stu_score VALUES(2,'林青霞',100,100,100,'一班');
INSERT INTO stu_score VALUES(2,'李青霞',100,100,100,'一班');
INSERT INTO stu_score VALUES(2,'梅青霞',100,100,100,'一班');
-- 采用批量插入
INSERT INTO stu_score (id,sname,chinese,math,english,class) VALUES
(3,'黎姿',99,99,99,'二班'),
(4,'豆腐妹',88,88,88,'一班'),
(5,'小明',10,9,0,'一班')
;
/*-------表的数据的删除DELETE---------*/
/*
        delete from 表名 where 条件
        注意:一定要挂条件,不然出现全部删除的情况!!!!!
        如果真的想要删除所有的数据,我们建议truncate table 表名这种语句,因为效率高
       
*/
DELETE FROM stu_score WHERE id >= 3;
/*-------表的数据的修改UPDATE---------*/
/*
        update  表名 set 列名=列值 , 列名=列值.... where 条件
        注意:一定要挂条件,不然出现全部修改的情况!!!!!
*/
-- 修改id为1的名字为"建建"
UPDATE stu_score SET sname = '建建' WHERE id = 1;
-- 修改id为2的名字为"青青"
UPDATE stu_score SET sname = '青青' WHERE id = 2;
-- 不要忘记加条件,否则会修改全部
UPDATE stu_score SET class = '梅军建家里';
--  修改id为1和id为2的班级为"一班"
UPDATE stu_score SET class = '一班' WHERE id = 1 || id = 2;


/*************************DQL语句*********************************/
/*
   注意:
        null和任何数据计算都为null,可以使用ifnull(字段, 默认值)来解决问题
       
   条件相关的知识
        >,<,=,!=(<>),>=,<=
        &&(and) , ||(or), !(not)
        between and: 和>= and <=一样的效果
        in(集合) 简化 多个or的书写
        null不可以使用=和!=,应该用is或者is not来判断
        like--->模糊查询
                _:匹配一个
                %:匹配多个
       
*/

-- 查询一张表中所有的字段!!!
SELECT * FROM stu_score;
-- 查询sname和class这两列
SELECT sname,class FROM stu_score;
-- 去重查询(一般去重查询只针对一个字段)
SELECT DISTINCT class FROM stu_score;
-- 计算列(一般针对数字列(int或者double类型的列))
SELECT *,chinese+math+english AS 总分 FROM stu_score;
SELECT *,chinese+math+english  总分 FROM stu_score;

SELECT *,stu_score.`chinese`+ stu_score.`english`+ stu_score.`math` 总分 FROM stu_score;
-- 多个OR的语句很麻烦,可以使用in这个简化书写
SELECT * FROM stu_score WHERE id = 1 OR id = 3 OR id = 5;
-- 使用in简化or的书写
SELECT * FROM stu_score WHERE id IN(1,3,5);


-- 查所有的"青霞"
SELECT * FROM stu_score WHERE sname LIKE '%青霞%';
-- 查第二个字是"青"的人
SELECT * FROM stu_score WHERE sname LIKE '_青_';











推荐了解热门学科

java培训 Python人工智能 Web前端培训 PHP培训
区块链培训 影视制作培训 C++培训 产品经理培训
UI设计培训 新媒体培训 产品经理培训 Linux运维
大数据培训 智能机器人软件开发




传智播客是一家致力于培养高素质软件开发人才的科技公司“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。

传智播客从未停止思考

传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”

中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。

何为中高级程序员课程?

传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。




黑马程序员热门视频教程【点击播放】

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通


在线咨询 我要报名
和我们在线交谈!