zoukankan      html  css  js  c++  java
  • MySQL基本语法

    MySQL学习记录

    DDL : 数据库定义语句(Datebase Define Language)
    DML : 数据管理语句(Datebase Manage Language)
    DQL : 数据库查询语言(Datebase Query Language)

    数据库定义语句(Datebase Define Language)
    -- DDL语句
    SHOW DATABASES; -- 列出所有数据库
    CREATE DATABASE `dailytext`; -- 创建数据库
    DROP DATABASE `dailyText`; -- 删除数据库
    USE `dailytext`; -- 更换数据库
    SHOW TABLES; -- 列出数据表
    CREATE TABLE IF NOT EXISTS `person` (
    	`id` INT AUTO_INCREMENT,
    	`name` VARCHAR(10) NOT NULL,
    	`age` INT,
    	`gender` ENUM ('man','woman','other'),
    	`bd` DATE,
    	PRIMARY KEY (`id`)
    )ENGINE=INNODB ,CHARSET=utf8 ; -- 创建表
    DESC person; -- 显示表结构
    ALTER TABLE persons RENAME person; -- 重命名表名
    ALTER TABLE person ADD gender VARCHAR(3) DEFAULT '男' COMMENT '性别'; -- 添加字段
    ALTER TABLE `person` ADD `married` ENUM('yes','no') DEFAULT NULL first/after Column_Name; -- 指定位置添加字段
    ALTER TABLE `person` MODIFY `married` VARCHAR(5) DEFAULT NULL; -- 只能修改字段属性以及字段长度
    ALTER TABLE `person` CHANGE `married` `marry` VARCHAR(10) DEFAULT NULL; -- 修改字段名,字段属性以及字段长度
    ALTER TABLE `person` DROP `marryy`; -- 删除字段
    
    
    -- delete,drop,truncate 都有删除表的作用,区别在于:
    /*
     1、delete 和 truncate 仅仅删除表数据,drop 连表数据和表结构一起删除,打个比方,delete 是单杀,truncate 是团灭,drop 是把电脑摔了。
     2、delete 是 DML 语句,操作完以后如果没有不想提交事务还可以回滚,truncate 和 drop 是 DDL 语句,操作完马上生效,不能回滚,打个比方,delete 是发微信说分手,后悔还可以撤回,truncate 和 drop 是直接扇耳光说滚,不能反悔。
     3、执行的速度上,drop>truncate>delete,打个比方,drop 是神舟火箭,truncate 是和谐号动车,delete 是自行车。
     */
    TRUNCATE TABLE `person`; -- 删除表内容,自增列计数器清空
    DELETE TABLE `person`; -- 删除表内容,自增列计数器不清空
    							-- 若数据表使用InnoDB引擎,重启数据库后自增列会清零,数据保存在内存中
    							-- 若数据表使用MyISAM引擎,重启数据库后自增列也不会清零,数据保存在文件中
    DROP TABLE `person`; -- 删除表内容和结构
    
    数据管理语句(Datebase Manage Language)
    -- DML语句
       -- 添加一条数据
          -- 方式一
    	INSERT INTO person
    	VALUES (NULL,'Mariya',12,'女');
          -- 方式二
            INSERT INTO person
            (`name`,`age`,`gender`,`birthday`)
            VALUES
            ('jicka',16,'女',NOW());
    
       -- 修改一条数据
    	UPDATE person
    	SET `name`='Rick' ,`age`=13 , `gender`=DEFAULT
    	WHERE `name`='Mariya' OR `age`=12; 
    	
    	UPDATE person
    	SET age=50
    	WHERE `name`='Rick';
    	
    	UPDATE person
    	SET `birthday`='1956-02-29' -- 设置时间格式为字符串
    	WHERE `name`='Rick';
    	
    	UPDATE person
    	SET `birthday`=CURRENT_TIME
    	WHERE id>1 AND id <14;
    	
    	
    	-- 删除一条数据(自增列不清除,会继续原来的增加)
        DELETE FROM `person`
        WHERE `name`='Gazor';
    
    数据库查询语言(Datebase Query Language)
    -- DQL语句
    -- 基本查询语句:
    SELECT * FROM cartoon;
    
    -- 连接查询
    /* 
    内连接 :显示两表都有的内容,where和on无区别,应搭配on
    语法:
    	select column_name 
    	from A 
    	inner join B 
    	where/on A.column_name=B.column_name
    */
    SELECT c.`name` 姓名,c.`married` 已婚,p.`age` 年龄,p.`gender` 性别1,c.`gender` 性别2
    FROM `cartoon` c
    INNER JOIN `person` p
    ON c.`name` = p.`name`
    ORDER BY c.`id`;
    
    
    /* 左连接 :左表为主表(A),结果显示左表中全部信息,右表中不存在的字段名用 NULL 填充
    语法: 
    	select column_name 
    	from A 
    	left join B 
    	on A.column_name=B.column_name
    */
    SELECT p.`name` 姓名,p.`gender` 性别1,c.`gender` 性别2,c.`married` 已婚
    FROM person p LEFT JOIN cartoon c
    ON p.`name`=c.`name`;
    
    
    /* 右连接 :右表为主表(A),结果显示右表中全部信息,左表中不存在的字段内容用 NULL 填充
    语法: 
    	select column_name 
    	from A 
    	right join B 
    	on A.column_name=B.column_name
    */
    SELECT p.`name` 姓名,p.`gender` 性别1,c.`gender` 性别2,c.`married` 已婚
    FROM person p RIGHT JOIN cartoon c
    ON p.`name`=c.`name`;
    
    SELECT p.`name` 姓名,p.`gender` 性别1,c.`gender` 性别2,c.`married` 已婚
    FROM cartoon c RIGHT JOIN person p
    ON p.`name`=c.`name`; -- 此结果和上面左连接查询例子一致
    
    SELECT p.`name` 姓名,p.`gender` 性别1,c.`gender` 性别2,c.`married` 已婚
    FROM dailytext.`cartoon` c RIGHT JOIN shmebluk.`person` p
    ON p.`name`=c.`name`; -- 可选择不同数据库的表连接,用 datebase.table_name 选择
    
  • 相关阅读:
    一种复杂的情感--“外戚”
    追~
    神受的孩子
    不好的习惯
    思杨改编的朝代歌
    siyang入厕
    小思趣事
    今天周三啦~~时光啊
    Python(6)——装饰器
    Python(5)——关于描述符的三种操作方法
  • 原文地址:https://www.cnblogs.com/shmebluk/p/13099566.html
Copyright © 2011-2022 走看看