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

    SQL结构化查询语言

    1.数据定义语言(DDL):用于定义和管理数据对象,包括数据库,数据表等。例如:CREATE,DROP,ALTER等。

    数据库 -> 数据表:对数据库或数据表的创建、删除、修改等操作

    2.数据操作语言(DML):用于操作数据库对象中所包含的数据。例如:INSERT,UPDATE,DELETE语句。

    对数据的 增、删、改 这些操作,就是数据操作语言

    3.数据查询语言(DQL):用于查询数据库对象中所包含的数据,能够进行单表查询,

    连接查询,嵌套查询,以及集合查询等各种复杂程度不同的数据库查询,并将数据返回客户机中显示。SELECT

    4.数据控制语言(DCL):是用来管理数据库的语言,包括管理权限及数据更改。

    数据库

    用途

    Mysql

    登录数据库

    登录数据库

    1、cmd窗口(任何路径)输入:

    mysql -u root –p 回车

    (注: root是用户名,本机 不用指定ip)

    mysql –h ip -u root –p 回车

    (注:非本机 指定-h ip)

    2、再输入密码12345(12345为本机密码)

    3、use T2 ---指定数据库(T2为本机mysql一个库)

    退出数据库

    退出数据库

    exit

    DDL(数据定义语言)

    创建数据库

    create database 数据库名

    DDL(数据定义语言)

    删除数据库

    drop database 数据库名

    查看所有已创建的数据库

    show databases

    查看所有表

    show tables

    查看所有用户

    select user,host from mysql.user

    SELECT User, Host, Password FROM mysql.user;

    查看所有用户的权限

    SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

    查看某表结构。

    desc 表名;

    DDL(数据定义语言)

    创建表

    CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));

    例如:

    CREATE TABLE users(c_num int(5) primary key,name varchar(10),sex varchar(5),age int(10))

    DDL(数据定义语言)

    删除表

    drop table 表名

    DDL(数据定义语言)

    修改表---增加key

    先删除主键

    alter table 表名 drop primary key;

    然后再增加主键

    alter table 表名 add primary key(id);

    DDL(数据定义语言)

    修改表---修改表名

    alter table 原名 rename 新名

    DDL(数据定义语言)

    修改表—字段类型

    alter table 表名 modify column 字段名 类型;

    alter table uinfo modify column pw char(60);

    DDL(数据定义语言)

    修改表—增加列

    alter table表名add column age char(5)

    DDL(数据定义语言)

    修改表—修改列名

    alter table 表名 change 原名 新名 char(20)

    DML(数据操作语言)

    表插入行数据

    insert into 表名 (列名) values (值)

    例如:

    insert into users(c_num,name,sex,age) values(1,"lily","girl","19")

    insert into app_student(id,name,age,sex) values('1','lily','19','female')--------------如果增加数据报错,查看表名是否错误,是否有此字段,单引号是否填写

    DML(数据操作语言)

    表删除数据

    delete from 表名 where 条件;

    DML(数据操作语言)

    表编辑数据

    UPDATE 表名SET 新值 WHERE 条件

    例如:

    UPDATE 表名SET age = '12' WHERE id = 4

    DQL(数据查询语言)

    去重

    distinct

    例如:

    select distinct 字段名 from 表名;

    字符串连接

    concat(str1, str2,...)-------将多个字符串连接为一个字符串(如果有一个字符串为空,此行返回null)

    例如:

    select concat(id,name) as t from u;

    复制表

    只复制表结构到新表

    CREATE TABLE 新表 LIKE 旧表 ;

    复制表结构及数据到新表

    CREATE TABLE 新表 SELECT * FROM 旧表

    复制旧表的数据到新表(假设两个表结构一样) 

    INSERT INTO 新表 SELECT * FROM 旧表

    复制旧表的数据到新表(假设两个表结构不一样)

    INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表

    取平均值avg

    表结构

    c_num,name,age,sex,t

                 

    取最大值max

    select sex,max(age) from users group by sex;

    求和  sum

    select sex, sum(age) from users group by sex;

    Group 与 having

    建表:

    A: create table record(name char(20),course char(20),score char(20))
    B: insert into chengji(name,kecheng,fenshu) values('王五','英语','90')

     

    1、查询出每门课都大于80 分的学生姓名:

    方法一:

    select distinct name from table where name not in (select distinct name from table where fenshu<=80)

    方法二:

    select name from record group by name having min(score)>80

    2、查询每种课程的最高分数人员信息

    select name,course,max(score) from record group by course

    建表:

    A:create table student(auto char(20),id char(20),name char(20),courseid char(20),coursname char(20),score char(20))
    
    
     
    
    

    1、  删除除了auto不同, 其他都相同的学生冗余信息

    delete from student where auto not in (select auto from student group by id,na
    me,courseid,coursname,score);
  • 相关阅读:
    MYSQL删除表的记录后如何使ID从1开始
    Python chardet 字符编码判断
    中文搜索引擎技术揭密
    python 处理中文网页时,忽略特殊字符,忽略异常
    cmd 之基础命令
    自己写的删除主键的存储过程
    朝花夕拾delphi的三层结构
    ERWIN中的一对多标识关系和一对多非标识关系
    翻页用的SQL
    关于 Ajax 的一篇通俗易懂的文章
  • 原文地址:https://www.cnblogs.com/wenchengqingfeng/p/9896590.html
Copyright © 2011-2022 走看看