zoukankan      html  css  js  c++  java
  • Mysql基本sql操作

    desc mysql.user; -- 查看表结构 
    SHOW TABLES; -- 查看表
    show variables where variable_name like 'character_set_%'; -- 检查字符集变量
    show variables like '%skip_name_resolve%'; -- 查看变量
    SHOW GRANTS FOR 'test'@'10.9.119.%'; -- 查看指定用户的授权
    

    create

    create database students; -- 建库
    CREATE DATABASE `students` CHARACTER SET utf8 COLLATE utf8_general_ci; -- 字符集
    CREATE TABLE students2 (id int UNSIGNED NOT NULL ,name VARCHAR(20) NOT NULL,age tinyint UNSIGNED,PRIMARY KEY(id,name)); -- 创建表,联合主键
    或者小写: create table students(id int unsigned not null primary key, name varchar(20) not null, age tinyint unsigned);  -- unsigned既为非负数,用此类型可以增加数据长度!
    create user 'test2'@'%'  IDENTIFIED BY 'centos'; -- 创建test2用户密码centos
    

    drop

    DROP TABLE students2; -- 删除表
    drop user 'test2'@'%'; -- 删除用户
    

    alter

    alter table students2 rename s1; -- 修改表名
    alter table s1 add phone char(11) after name; -- 加phone字段,默认值是name
    ALTER TABLE s1 MODIFY phone int; -- 修改字段属性
    ALTER TABLE s1 CHANGE COLUMN phone mobile char(11); -- 修改字段名以及属性
    alter table s1 drop column mobile; -- 删除字段名
    alter database studentdb character set  utf8; -- 修改库字符集
    alter table s1 character set utf8; -- 修改表字符集
    ALTER TABLE s1 change name name varchar(20) character set utf8; -- 修改字段字符集
    

    insert

    insert s1 (id,name,age) values(1,'那么',18); 
    insert into s1 values(2,'cc',24);
    insert into s1 values(4,'cc',24),(3,'dd',22); -- 插入多行
    

    update

    -- 注意:一定要有限制条件,否则将修改所有行的指定字段
    update s1 set age = 20 where id = 1; -- 将s1表中id=1的age值改成20
    update s1 set age = 30 where id = 1 limit 1; -- limit只修改一项
    

    delete

    TRUNCATE TABLE 表名; -- 清空表,比delete快
    delete from s1 where id=1; -- 删除指定条件的行
    delete from mysql.user where user = 'test'and host='%';
    

    select

    select host,user, authentication_string from user; 查看mysql用户
    select * from s1 order by age; -- 根据age排序
    select * from s1 order by age desc; -- 倒序
    select * from s1 order by age limit 1; -- 排完序,只显示一项
    select * from s1 order by age limit 1,1; -- 排完序,跳过第一项,只显示一项
    select gender,sum(age) from students group by gender; -- group by 分组需要有分组条件
    select * from students where TeacherID is null; -- null值用where is
    select DISTINCT gender from students ; -- 去重
    select all gender from students ; -- 所有
    
    (1) 在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄
    select name,age from students where age > 25 and gender ='M';
    (2) 以ClassID为分组依据,显示每组的平均年龄
    select classid,avg(age) from students group by classid;
    (3) 显示第2题中平均年龄大于30的分组及平均年龄
    select classid,avg(age) as a from students group by classid having a > 30;
    (4) 显示以L开头的名字的同学的信息
    select * from students where name like 'L%';
    (5) 显示TeacherID非空的同学的相关信息
    select * from students where teacherid is not null;
    (6) 以年龄排序后,显示年龄最大的前10位同学的信息
    select * from students  order by age desc limit 10;
    (7) 查询年龄大于等于20岁,小于等于25岁的同学的信息
    select * from students  where age >= 20 and age <=25;
    

    授权

    grant all on hellodb.* to 'test'@'10.9.119.%' IDENTIFIED BY 'centos'; -- 创建test用户,密码centos。拥有hellodb所有操作权限
    revoke delete on hellodb.* from 'test'@'10.9.119.%'; -- 回收delete授权
    revoke all on hellodb.* from 'test'@'10.9.119.%'; -- 回收所有授权
    SHOW GRANTS FOR 'test'@'10.9.119.%'; -- 查看指定用户的授权
    FLUSH PRIVILEGES; -- 更改完需要及时重读授权表,预防有的命令还在内存中,使之生效
    
    每天进步一点点
  • 相关阅读:
    Spring的设计理念和整体架构
    垃圾收集器与内存分配策略(3)
    垃圾收集器与内存分配策略(2)
    实践一次有趣的sql优化
    PHP之static
    PHP之const
    MySQL数据库常用操作
    PHP之__aotoload()自动加载机制
    PHP之类的属性方法重写
    MYSQL工具类简单实现
  • 原文地址:https://www.cnblogs.com/Otiger/p/14481569.html
Copyright © 2011-2022 走看看