SQL基本语句

基本SQL语句:

#进入mysql客户端
$mysql
mysql> select user();  #查看当前用户
mysql> exit     # 也可以用\q quit退出

# 默认用户登陆之后并没有实际操作的权限
# 需要使用管理员root用户登陆
$ mysql -uroot -p   # mysql5.6默认是没有密码的
#遇到password直接按回车键
mysql> set password = password('root'); # 给当前数据库设置密码

# 创建账号
mysql> create user 'eva'@'192.168.10.%'   IDENTIFIED BY PASSWORD '123';# 指示网段
mysql> create user 'eva'@'192.168.10.5'   # 指示某机器可以连接
mysql> create user 'eva'@'%'                    #指示所有机器都可以连接  

# 远程登陆
$ mysql -uroot -p123 -h 192.168.10.3

# 给账号授权
mysql> grant all on *.* to 'eva'@'%';
mysql> flush privileges;    # 刷新使授权立即生效

# 创建账号并授权
mysql> grant all on *.* to 'eva'@'%' identified by '123' 

mysql的账号操作

 简单的文件操作命令

1. 操作文件夹(库)
   增:create database db1 charset utf8;
   查:show databases;
   改:alter database db1 charset latin1;
   删除: drop database db1;


2. 操作文件(表)
   先切换到文件夹下:use db1
   增:create table t1(id int,name char);
   查:show tables;
   改:alter table t1 modify name char(3);
      alter table t1 change name name1 char(2);
   删:drop table t1;
    

3. 操作文件中的内容(记录)
   增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3');
   查:select * from t1;
   改:update t1 set name='sb' where id=2;
   删:delete from t1 where id=1;

   清空表:
       delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
       truncate table t1;数据量大,删除速度比上一条快,且直接从零开始,

*auto_increment 表示:自增
*primary key 表示:约束(不能重复且不能为空);加速查找

 常用命令:

命令
    mysqld --initialize-insecure  初始化命令
    mysqld   开启服务端
    mysql -uroot -p 开启一个新的cmd  开启客户端、连接服务端
    password密码
    show databases   查看所有的数据库
    create database db1  创建数据库
    tasklist |findstr mysql  开启一个新的cmd 查看进程
    taskkill /F /PID 进程号   杀死进程
安装window服务
    mysqld --install  安装window服务
    mysqld --remove  移除window服务
    net start mysql : 开启服务端
    net stop mysql  :关闭服务端
    selsct user(); 查询
    exit 退出
    mysqladmin -uroot -p password "123"  设置密码
忘记密码怎么办?
     (1) 先关闭掉之前的mysql服务器的进程  net stop mysql
     (2) 跳过授权表开启mysql的服务端  mysqld --skip-grant-tables (开启服务端的 约束条件跳过授权)
     (3) 客户端连接 mysql -uroot -p   在开一个cmd
     (4) 更改密码:update mysql.user set authentication_string =password('') where User='root'; 
     (5) 刷新权限 flush privileges;
    在开一个cmd
    查看进程号:tasklist |findstr mysql 
    杀死进程:taskkill /F /PID 进程号
    net start mysql : 开启服务端
如何创建用户和密码
    create user 'mjj'@'192.118.1.1' identified by '123';
    create user 'mjj'@'192.118.1.%' identified by '123';
    create user 'yining'@'%' identified by '91';
给当前的用户授权
    grant all privileges  on *.*  to "xxxx"@'%';        
移除当前用户的权限
    revoke all privileges on *.* from 'xxx'@'%';
连接
    mysql -uyining -h 192.168.13.29 -P 3306 -p91
    show databases; 查看所有的数据库
    use db1; 使用数据库
    
操作文件夹(库)
    create database db1 charset utf8;  增
    show create database db1;   查看当前创建的数据库
    show databases;    查看所有的数据库
    alter database db1 charset gbk;   改
    drop database db1;   删
操作文件(表)
    use db1;    切换文件夹
    select database();   查看当前所在文件夹
    create table t1(id int,name char(10));  增
    show tables;    查看所有的表
    show create table t1;   查看当前的这张t1表
    desc t1;   查看表的详细信息
    alter table t1 modify name char(6);   修改   modify修改字节数
    alter table t1 change name NAMA char(7);    改变name为大写的NAME   change字数和名字
    drop table t1;  删除表
操作文件内容
    insert into t1(id,name) values(1,"mjj01"),(2,"mjj02"),(3,"mjj03");   插入一条数据,规定id,name数据leilei
    select id from db1.t1;   查id
    select id,name from db1.t1   
    select * from db1.t1;   查所有
    update db1.t1 set name='alex' where id=2;   改
    delete from t1 where id=2;
创建数据库
    help create database;   求救语法
    create database  数据库名  charset utf8;
    show database;  查看数据库
    show create database db1;  查看当前库
    select database();    查看所有库
    use 数据库名     进入数据库
    drop database 数据库名;   删除数据库
    alter database db1 charset utf8;   修改数据库
存储引擎    
    mysql 5.5版本之后默认为innodb存储引擎
    另外还有mysiam、memory、blackhone
    #memory,在重启mysql或者重启机器后,表内数据清空
    #blackhole,往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录
    create table t1(id int)engine=innodb;
    create table t2(id int)engine=myisam;
    create table t3(id int)engine=memory;
    create table t4(id int)engine=blackhole;
创建表
    create database db2 charset utf8;       创建数据库
    use db2;    使用数据库
    create table a1(
      id int,
      name varchar(50),
      age int(3)
    );                    创建a1表
    insert into a1 values
        (1,'mjj',18),
        (2,'wusir',28);           插入表的记录
    select * from a1;     查询a1表中的存储数据
    desc a1;         查看a1表的结构
    show create table a1\G;      查看表的详细结构
复制表 
    create database db3 charset utf8;        新创建一个数据库db3
    use db3;        使用db3
    create table b1 select * from db2.a1;            复制db2.a1的表结构和记录
    select * from db3.b1;        查看db3.b1中的数据和表结构
    create table b2 select * from db2.a1 where 1>5;        只要表结构,不要记录
    create table b3 like db2.a1;        使用like(只拷贝表结构,不拷贝记录)
    drop table 表名;        删除表:
数据类型
    整型:tinyint int bigint
    浮点型: float double decimal
    时间:year date time datetime
    字符:char 定长 > varchar 变长 > text 文本
    时间类型: datetime
    枚举:enum   多选一
    集合:set    
        create table consumer(
            id int unsigned,
            name varchar(20),
            sex enum('male','female','other'),
            level enum('vip','svip','vvip'),
            fav set('smoke','drink','tangtou')            
        
        );
        insert into consumer values(1,'一宁','other','vvip','smoke,drink,tangtou');
    布尔:boolean  tinyint(1) 存1 表示true,存0 表示false
    
    函数: now() 根据字段的数据类型获取当前的时间格式
           char_length: 获取字符长度
           length():获取字节数
           
    sql中默认是有符号的
    如果设置无符号unsigned
    用0填充 zefofill
约束
    作用:保证数据的完整性和一致型
    表的设计
        1.not null(不可空) 与 default
            create table tb1(id int not null default 2,name char(20) not null);
            insert into tb1  values(1,'alex');
            insert into tb1(name) values('武sir');
            insert into tb1(id) values(3);
        2.unique  
            单列唯一
            create table dep(id int not null,name varchar(20) unique);
                insert into dep(id,name) values(1,'alex');
                insert into dep(id,name) values(2,'alex');
            多列唯一    表示每一列都唯一
            create table dep2(id int unique,name varchar(20) unique);
                insert into dep2(id,name) values(1,'alex');
            组合唯一 (联合唯一) 只要有一列不同,就可以插入数据
            create table dep3(
                id int,
                name varchar(20),
                unique(id,name)        
            );
            insert into dep3(id,name) values(1,'alex');
            insert into dep3(id,name) values(1,'alex2');
            insert into dep3(id,name) values(2,'alex');
        3.primary key (索引优化查询)
        

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
一般常用操作

 

posted @ 2018-10-15 15:20  RootEvils  阅读(220)  评论(0编辑  收藏  举报