• Mysql基础1


    一、数据库简介
    1、Structured Query Language (结构化查询语言)
    2、SQL:工业标准。(各个数据库厂商都支持)
    SQL-Server:对标准进行了扩展。TSQL 方言
    Oracle:对标准进行了扩展。PLSQL

    规定:
    shell>window下命令
    mysql>mysql中的命令,一般以;结尾(进入数据库)

    二、安装MySQL数据库
    如何验证安装是否成功!
    shell>mysql -u root -psorry
    显示所有的数据库
    mysql>SHOW DATABASES;
    除了test,其他2个数据库不要动。
    *****三、SQL语句
    1、DDL:Data Definition Language(数据定义语言)
    关键字:CREATE ALTER DROP(操作对象:数据库和表结构。就是定义数据库或表的结构)
    ------------------------------------------------------------------
    创建一个名称为mydb1的数据库。
    mysql>CREATE DATABASE mydb1;
    查看数据库的创建细节
    mysql>SHOW CREATE DATABASE mydb1;
    创建一个使用gbk字符集的mydb2数据库。
    mysql>CREATE DATABASE mydb2 CHARACTER SET gbk;
    创建一个使用utf8字符集,并带校对规则的mydb3数据库。
    mysql>CREATE DATABASE mydb3 CHARACTER SET utf8 COLLATE utf8_general_ci;
    查看当前数据库服务器中的所有数据库
    mysql>SHOW DATABASES;
    查看前面创建的mydb2数据库的定义信息
    mysql>SHOW CREATE DATABASE mydb2;
    删除前面创建的mydb2数据库
    mysql>DROP DATABASE mydb2;

    查看服务器中的数据库,并把其中mydb1库的字符集修改为gbk;
    mysql>ALTER DATABASE mydb1 CHARACTER SET gbk;
    备份test库中的数据,并恢复

    备份:
    shell>mysqldump -h localhost -u root -psorry test>c:/test.sql
    恢复数据库:(删除掉test数据库)
    创建test数据库
    mysql>CREATE DATABASE test;
    mysql>USE test;
    恢复:
    方式一:
    mysql>SOURCE C:/test.sql;
    //选择数据库
    mysql>USE test;
    方式二:
    shell>mysql -u root -psorry test<c:/test.sql

    显示数据库中的所有表格
    mysql>SHOW TABLES;
    -------------------------------------------------
    创建员工信息表
    mysql>CREATE TABLE employee(
    id int,
    name varchar(100),
    gender varchar(10),
    birthday date,
    entry_date date,
    job varchar(100),
    salary float(8,2),
    resume varchar(200)
    );
    查看数据库中所有的表格
    mysql>SHOW TABLES;
    查看某张表格的结构
    mysql>DESC employee;
    在上面员工表的基本上增加一个image列。
    mysql>ALTER TABLE employee ADD (image blob);
    修改job列,使其长度为60。
    mysql>ALTER TABLE employee MODIFY job varchar(60);
    删除gender列。
    mysql>ALTER TABLE employee DROP gender;
    表名改为user。
    mysql>RENAME TABLE employee TO user;
    修改表的字符集为utf-8
    mysql>ALTER TABLE user CHARACTER SET utf8;
    列名name修改为username
    mysql>ALTER TABLE user CHANGE name username varchar(100);

    *2、DML:Data Manipulation Language(数据操作语言)
    关键字:INSERT UPDATE DELETE(操作对象:表中的数据。就是操作表中的记录用的)
    ------------------------------------------------------------------
    在MySQL中,字符或字符串或日期类型的数据要使用单引号引起来。关键字NULL表示空值,不同于空字符串值。''
    使用insert语句向表中插入三个员工的信息。
    mysql>INSERT INTO user (id,username,birthday,entry_date,job,salary,resume) VALUES (1,'huangshanshan','1992-09-08','2012-11-15','CEO','10000','beautiful girl');
    mysql>INSERT INTO user VALUES (2,'niuyang','1992-09-08','2012-11-15','CTO','10000','beautiful boy');
    mysql>INSERT INTO user VALUES (3,'于连林','1992-09-08','2012-11-15','CMO','10000','帅锅');
    告诉服务器客户端用的编码是什么?
    mysql>SET character_set_client=gbk;
    查看数据
    mysql>SELECT * FROM user;
    解决返回的数据中文乱码
    mysql>SET character_set_results=gbk;
    MySQL中的各种编码:
    查看有哪些地方用到编码
    mysql>SHOW VARIABLES LIKE 'character%';
    character_set_client:此变量通知服务器客户端用的是什么编码
    character_set_connection:此变量通知服务器客户端链接时用的是什么编码
    character_set_database:数据库用的编码
    character_set_results:是数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集。
    character_set_server:是服务器安装时指定的默认字符集设定
    character_set_system :是数据库系统使用的字符集设定。

    将所有员工薪水修改为5000元。
    mysql>UPDATE user SET salary=5000;
    将姓名为’niuyang’的员工薪水修改为30000元。
    mysql>UPDATE user SET salary=30000 WHERE username='niuyang';
    将姓名为’huangshanshan’的员工薪水修改为20000元,job改为HR。
    mysql>UPDATE user SET salary=20000,job='HR' WHERE username='huangshanshan';
    将于连林的薪水在原有基础上增加10000元。
    mysql>UPDATE user SET salary=salary+10000 WHERE username='于连林';

    删除表中名称为’于连林’的记录。
    mysql>DELETE FROM user WHERE username='于连林';
    删除表中所有记录。(一条一条地删除)
    mysql>DELETE FROM user;
    使用truncate删除表中记录。(摧毁整张表,然后重建表结构)
    mysql>TRUNCATE user;

    ------------------------------------------------------------------
    *3、DQL:Data Query Language(数据查询语言)
    关键字:SELECT
    查询表中所有学生的信息。
    mysql>SELECT id,name,chinese,english,math FROM student;
    或者SELECT * FROM student;
    查询表中所有学生的姓名和对应的英语成绩。
    mysql>SELECT name,english FROM student;
    过滤表中重复数据。
    mysql>SELECT DISTINCT english FROM student;

    在所有学生语文分数上加10分特长分。
    mysql>SELECT id,name,chinese+10 FROM student;
    统计每个学生的总分。
    mysql>SELECT id,name,chinese+english+math FROM student;
    使用别名表示学生分数。(AS可以省略)
    mysql>SELECT id,name,chinese+english+math AS 总分 FROM student;
    mysql>SELECT id,name,chinese+english+math 分 FROM student;

    查询姓名为wu的学生成绩
    mysql>SELECT id,name,chinese,english,math FROM student WHERE name='王五';
    查询英语成绩大于90分的同学
    mysql>SELECT name,english FROM student WHERE english>90;
    查询总分大于200分的所有同学
    mysql>SELECT name,chinese+english+math AS 总分 FROM student WHERE (chinese+english+math)>200;
    ------------------------------------------------------------------
    (选修)4、DCL:Data Control Language(数据控制语言)
    GRANT等
    *****四、多表关系及设计
    *****五、约束

  • 相关阅读:
    Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) Finished D. Arpa and a list of numbers
    Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) C. Five Dimensional Points
    Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) B. Arpa and an exam about geometry
    Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) A. Arpa and a research in Mexican wave
    hdu 5510
    长沙理工大学第十二届ACM大赛
    Codeforces Round #336 (Div. 2) D. Zuma
    百(垃)度(圾)之星初赛B hdu6114
    百(垃)度(圾)之星初赛B hdu6119
    Codeforces Round #428C
  • 原文地址:https://www.cnblogs.com/yys369/p/5325668.html
Copyright © 2020-2023  润新知