zoukankan      html  css  js  c++  java
  • [转载]传智播客_SQL入门

    原文地址:传智播客_SQL入门作者:happylonger

    SQL

    * 数据定义语言 DDL
    * 数据操作语言 DML

    * 查询和更新指令构成了 SQL 的 DML 部分:
     * SELECT - 从数据库表中获取数据
     * UPDATE - 更新数据库表中的数据
     * DELETE - 从数据库表中删除数据
     * INSERT INTO - 向数据库表中插入数据

    * SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

    * SQL 中最重要的 DDL 语句:
     * CREATE DATABASE - 创建新数据库
     * ALTER DATABASE - 修改数据库
     * CREATE TABLE - 创建新表
     * ALTER TABLE - 变更(改变)数据库表
     * DROP TABLE - 删除表
     * CREATE INDEX - 创建索引(搜索键)
     * DROP INDEX - 删除索引

    * 在结果集(result-set)中导航
     由 SQL 查询程序获得的结果被存放在一个结果集中。大多数数据库软件系统都允许使用编程函数在结果集中进行导航,比如:Move-To-First-Record、Get-Record-Content、Move-To-Next-Record 等等。

    * SQL TOP子句
     * SQL Server语法
      SELECT TOP number|percent column_name(s)
      FROM table_name
     * MySQL 语法
      SELECT column_name(s)
      FROM table_name
      LIMIT number
     * Oracle 语法
      SELECT column_name(s)
      FROM table_name
      WHERE ROWNUM <= number

    * SQL JOIN
     * INNER JOIN: 在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
     * JOIN: 如果表中有至少一个匹配,则返回行
     * LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
     * RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
     * FULL JOIN: 只要其中一个表中存在匹配,就返回行
     注: INNER JOIN 与 JOIN 是相同的。
    * SQL UNION
     * UNION
     * UNION ALL

    * SQL Select into

    * SQL 约束 (Constraints)
     * NOT NULL
     * UNIQUE
     * PRIMARY KEY
     * FOREIGN KEY
     * CHECK
     * DEFAULT

     * SQL FOREIGN KEY 约束
      * 一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY
      * FOREIGN KEY 约束用于预防破坏表之间连接的动作。
      *FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

    * SQL 函数
     * 函数的语法:
      SELECT function(列) FROM 表
    * SQL GROUP BY 语句
     * GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
    * SQL HAVING 子句
     * 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。

    数据库:保存在硬盘上的文件
    数据库产品:采用一种优良的数据结构来保存数据,方便我们对数据进行查询和修改

    访问本机的mysql
     * mysql -?
     * mysql -hlocalhost -P3306 -uroot -proot
     * mysql -uroot -proot -b(取消警告音)

    sql语句,用于操作数据库的语句

    数据库database 表table
    创建create
    查看show
    修改alter
    删除drop

    所有对数据库和表单的操作 就是上面六个单词的组合

    //创建一个数据库
    create database mudb;

    //删除一张表
    drop table mytable;

    一、数据库的操作
    创建一个名称为mydb1的数据库
    create database mydb1;

    创建一个使用utf-8字符集的mydb2数据库。
    create database mydb2 character set utf8;

    创建一个使用utf-8字符集,并带校对规则的mydb3数据库。
    create database mydb98 character set utf8 collate utf8_general_ci;

    查看所有的数据库
    show databases;
    查看数据库的创建语句
    show create database mydb2;

    删除前面创建的mydb3数据库
    drop database mydb3;
    drop database if exists mydb3; 如果存在才会删除

     数据库的修改
     数据库一旦创建名称无法修改 ,字符集和校对规则可以改
    把mydb2的字符集修改为gb2312
    alter database mydb2 character set gb2312;

    备份数据库
    //使用数据库
    use mydb2;
    //创建表
    create table a(
     name varchar(20)
    );
    //插入数据
    insert into a(name) values('aaa');
    insert into a(name) values('bbb');

    备份数据库
    mysqldump -uroot -proot mydb2 > d:/a.sql

    删除mydb2
    drop database mydb2;

    恢复数据库 实际上是恢复数据库中的数据
    创建数据库 使用数据库
    create database mydb3;
    uer mydb3;
    source d:/a.sql;

    实际上source命令用于执行一段sql脚本

    二、表的操作
    创建表
    Id  整形
    name  字符型
    gender  字符型或bit型
    birthday 日期型
    Entry_date 日期型
    job  字符型
    Salary  小数型
    resume  大文本型

    create table employee(
     id int,
     name varchar(20),
     gender varchar(6), --男 女 male female
     birthday date,
     entry_date date,
     job varchar(20),
     salary float,
     resume text
    );

    修改表
    在上面员工表的基本上增加一个image列。
    alter table employee add image blob;
    修改job列,使其长度为60。
    alter table employee modify job varchar(60);
    删除gender列。
    alter table employee drop gender;
    表名改为user。
    rename table employee to users;
    修改表的字符集为utf-8
    alter table users character set utf8;
    列名name修改为username
    alter table users change column name username varchar(40);

    查看表所有的表
    show tables;
    查看表的创建语句
    show create table users;
    查看表的结构
    desc users;

    //删除表
    drop table employee;

    三、表中数据的操作(重点)
    crud:create read update delete

    sql语句
    1.insert语句 增加数据
    employee.sql
    create table employee(
     id int,
     name varchar(20),
     gender varchar(6),
     birthday date,
     entry_date date,
     job varchar(20),
     salary float,
     resume text
    );
    插入三条记录
    insert employee(id,name,gender,birthday,entry_date,job,salary,resume) values(1,'zhangsan','male','1989-1-1','2012-1-1','A',5000,'good boy');
    insert employee(id,name,gender,birthday,entry_date,job,salary,resume) values(2,'lisi','male','1989-1-1','2012-1-1','A',5000,'good boy');
    insert employee(id,name,gender,birthday,entry_date,job,salary,resume) values(3,'zhangsan','female','1989-1-1','2012-1-1','A',5000,'good girl');

    insert employee(id,name,gender,birthday,entry_date,job,salary,resume) values(3,'王五','female','1989-1-1','2012-1-1','A',5000,'一个好男孩');

    //查看数据库的所有编码
    show variables like 'character%';
    character_set_client 使用的客户端编码
    character_set_results 结果集的编码

    设置的方式
    character_set_client=gbk;
    character_set_results=gbk;

    //创建一张a表
    create table a(
     id int,
     name varchar(20)
    );
    insert into a values(1,'aaa');

    insert into a(name) values('bbb');

    insert a values(2,'ccc'),(3,'ddd');

    规范的方式书写
    insert into a(id,name) values(6,'eee');

    查看表中的数据
    select * from employee;

    2.update语句 更新数据

    3.delete语句 删除数据
    truncate 删除表再创建表
    truncate employee;

    4.select语句 删除数据

     

  • 相关阅读:
    11.7表单事件 定时器
    11.5真11.6 函数调用 数组字符串的定义和方法
    11.2 面向对象 解析
    11.1 js数据类型 作用域 原型链
    10.31js中级作用域链和this
    定时器
    生出对象的方式
    学习this
    字符串
    全局方法
  • 原文地址:https://www.cnblogs.com/warrior4236/p/6055727.html
Copyright © 2011-2022 走看看