zoukankan      html  css  js  c++  java
  • mysql数据库笔记0

    mysql数据库笔记0

    一次性添加多行数据

    例如:

    INSERT INTO students (class_id, name, gender, score) VALUES
    	(1, '大宝', 'M', 87),
    	(2, '二宝', 'M', 81);
    	
    SELECT * FROM students;
    注意分号,不是逗号。
    

    更新语句

    update <表名> set 字段1=值1,字段2=值2,。。。。where。。。

    1. 并且更新语句支持表达式,比如以下sql
    UPDATE students SET score=score+10 WHERE score<80;
    给所有低于80分的学生加10分
    2. 更新语句可以没有where子句,但是没有where子句的话,会对数据中的所有数据进行更新,如果涉及到大量的数据处理的时候小心点,
    3. 更新语句如果没有响应的数据更新的时候,数据库不会产生更新的。只会显示影响0行
    

    删除语句

    DELETE FROM <表名> WHERE ...;
    1. 最普通的删除语句
    	DELETE FROM students WHERE id=1;
    	-- 查询并观察结果:
    	SELECT * FROM students;
    2. 根据where子句删除并且可以删除多个数据例如:
    	1. DELETE FROM students WHERE id>=5 AND id<=7;
    	-- 查询并观察结果:
    		SELECT * FROM students;
    3. 如果where没有匹配到数据,delete语句也不会报错,也不会有任何数据被删除
    4. 特别小心的是,和UPDATE类似,不带WHERE条件的DELETE语句会删除整个表的数据:
    

    mysql的管理

    1. 通过client登录系统指令:mysql -u root -p root
    	1. 如果连接成功的话,会出现mysql>光标在此
    	2. 注意,连接的时候,此时连接的是mysql服务器,在这可以是本地的服务器,也可以是远程的服务器,远程服务器在下介绍如何连接
    	3. 输入exit语句来断开与mysql server的连接并回到cmd模式
    	4. mysql client通过tcp协议与mysql server进行连接,并且可以通过sql语句进行操作数据库
    	5. 如果本地机装mysql数据库,服务器也在本地,那么tcp可连接地址:127.0.0.1:3306
    	6. 如果是远程的服务器,并且得知mysql server的服务器ip:10.1.1.1则输入一下语句进行连接数据库
    		* mysql -h 10.1.1.1 -u root -p 
    2. 进入到数据库后的指令:《cmd的模式下,有可能打不开,原因有可
    能是你的环境没有配置,所以在cmd下,输入mysql -u等消息,系统没有路径,找不到你对应的程序,解决方法:可以添加path,可以在
    mysql安装目录下的lib下cmd,也可以直接通过client启动,直接输入密码即可》
    

    	1. show databases;列出所有的数据库
    	2. 创建一个新的数据库:create database test;
    	3. 删除一个数据库:drop database test;
    	4. 如果对一个数据库进行操作,需要user database名
    	5. 如果需要对数据库中的所有表展示,show tables;
    	6. 查看一个表的表结构,desc 表名
    	7. 查看创建数据库表的时候的创建语句
    		1. show create table students
    		2. drop table students:删除表
    		3. 修改表,新增一列:alter table students add column birth varchar(10) not null;
    		4. 修改birth列,把birth列改为birthday类型改为varchar(20)
    			alert table students change column birth birthday varchar(20) not null
    		5. 删除列
    			alert table students drop column birthday
    	8. 退出mysql:exit
    

    实用性sql语句

    1. 插入或替换:使用场景:插入一条新纪录,但如果该记录存在,就先删除原记录,在插入新纪录,使用语句replace语句,这样就不比先查询,然后在决定是否先删除再插入:

       replace into students(id,class_id,name,gender,score) values(1,1,'小明',‘f’,99)
       作用,如果id=1的记录不存在,replace语句将插入新纪录,否则,当前id=1的记录被删除,然后在插入新的记录
      
    2. 插入或更新
      如果我们希望插入一条新纪录,但是记录存在,就更新该记录使用INSERT INTO ... ON DUPLICATE KEY UPDATE ...语句

       	INSERT INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99) ON DUPLICATE KEY UPDATE name='小明', gender='F', score=99;
       若id=1的记录不存在,INSERT语句将插入新记录,否则,当前id=1的记录将被更新,更新的字段由UPDATE指定。
      
    3. 插入或忽略
      如果我们希望插入一条新记录(INSERT),但如果记录已经存在,就啥事也不干直接忽略,此时,可以使用INSERT IGNORE INTO ...语句:

       INSERT IGNORE INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99);
       若id=1的记录不存在,INSERT语句将插入新记录,否则,不执行任何操作。
      
    4. 快照
      如果想要对一个表进行快照,即复制一份当前表的数据到一个新表,可以结合CREATE TABLE和SELECT:

       -- 对class_id=1的记录进行快照,并存储为新表students_of_class1:
       CREATE TABLE students_of_class1 SELECT * FROM students WHERE class_id=1;
       新创建的表结构和SELECT使用的表结构完全一致。
      
    5. 写入查询结果集
      如果查询结果集需要写入到表中,可以结合INSERT和SELECT,将SELECT语句的结果集直接插入到指定表中。

    例如,创建一个统计成绩的表statistics,记录各班的平均成绩:

    	CREATE TABLE statistics (
    	    id BIGINT NOT NULL AUTO_INCREMENT,
    	    class_id BIGINT NOT NULL,
    	    average DOUBLE NOT NULL,
    	    PRIMARY KEY (id)
    	);
    

    然后,我们就可以用一条语句写入各班的平均成绩:

    INSERT INTO statistics (class_id, average) SELECT class_id, AVG(score) FROM students GROUP BY class_id;

    博客网站 https://yamon.top 个人网站 https://yamon.top/resume GitHub网站 https://github.com/yamonc 欢迎前来访问
  • 相关阅读:
    JS的应用(document对象)
    JS的应用(windows对象二)
    JS的应用(windows对象一)
    递归
    函数使用规则和JS内自带的一些函数
    学习笔记之HTML(十秒倒计时;列表收起、展开;下拉列表;
    学习笔记之大图轮播加圆点
    学习笔记之函数类型,for循环,练习
    学习笔记之for循环if循环小练习
    学习笔记之09for循环8个小练习
  • 原文地址:https://www.cnblogs.com/chenyameng/p/11459955.html
Copyright © 2011-2022 走看看