MySql常用语句

来源:互联网 发布:金蝶软件数据备份 编辑:程序博客网 时间:2024/06/06 13:11
目录
  1. 数据库连接,用户创建、权限、删除
  2. 数据库与表显示、创建、删除
  3. 查表where、having、group by、order by、limit
  4. 表的插入、复制、修改

1.数据库连接,用户创建、权限、删除
  • 连接数据库:mysql -h 主机地址 -u 用户名 -p ,然后输入用户密码(本机时,主机地址可以不加)
  • 创建用户:create user 'username'@'主机地址' identified by 'password' 
    • username:用户名
    • 主机地址:可以是localhost,想让该用户可以从任意远程主机登陆,可以使用通配符%
    • password为空时表示登陆时无需密码
  • 授权:grant privileges on databasename.tablename To 'username'@'主机地址'
    • privileges :用户的操作权限(注意不是输入privileges),如SELECT , INSERT等(多个权限逗号隔开),ALL为授予所有权限
    • databasename:数据库名,tablename:表名,授予该用户对所有数据库或表的相应操作权限可用*表示, 如*.*,类似于shell的多字符匹配
  • 设置、更改密码:set password for 'username'@'主机地址' = password('密码')
  • 删除用户:drop user 'username'@'主机地址'

2.数据库与表显示、创建、删除、操作
  • 库: 显示:show databases;创建:create database 库名;使用(使用前要选中库):use 库名 ,删除:drop database if exists 库名
  • 表: 显示(要先选中库):show tables;显示指定表结构:describe(desc) 表名;删除:drop table 表名;
  • 创建表临时表:注意(1)primary key必须为自增变量 (2)此处的命名大小写区分(3)若表已存在,不会新建
    create table if not exists Person(
    id INT(6) NOT NULL AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    password VARCHAR(32) NOT NULL,
    Birthday DATE NOT NULL,
    lasttime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  • 清除表中数据:
    • delete from 表名,清空数据但可以恢复;truncate table 表名,清空表不可恢复;
    • delete from 表名 where XX=xx;

3.查表where、having、group by、order by、limit
  • where(条件查询)、having(筛选)、group by(分组)、order by(排序)、limit(限制结果数)
  • 查询数值型:SELECT * FROM 表名 WHERE id>10;支持>,=,< >,!=,!>,!< >,=<
  • 查询字符串:SELECT * FROM 表名 WHERE name='张三';select * from 表名 where name like '张%'
  • 查询日期型:SELECT * FROM 表名 WHERE birthday='2008-08-08'
  • 查询逻辑型:SELECT * FROM 表名 WHERE type='T'
  • 查询非空数据:SELECT * FROM 表名 WHERE address <>'' order by addtime desc;此处<>相当于 !=
  • 查询前n条记录:SELECT * FROM 表名 LIMIT 0,,$n; 查询后n条记录:SELECT * FROM 表名 order by id ASC LIMIT $n

4.表的插入、复制、修改
  • 插入:INSERT INTO 表名(name,age)VALUES('LiMing','18');
  • 将旧表数据插入新表:INSERT INTO 新表 SELECT * FROM 旧表;
  • 完全复制一个表:CREATE table 新表 LIKE 旧表;
  • 只复制结构,没有主键:create table 新表 select * from 旧表;
  • 修改表名:alter table 表名 rename 新表名
  • 修改表中字段名与指定设置:alter table 表名 change birthday birth varchar(20) null;

0 0