zoukankan      html  css  js  c++  java
  • 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 a1G;      查看表的详细结构
    复制表 
        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 (索引优化查询)
            
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    一般常用操作
  • 相关阅读:
    第五周总结
    第四周总结
    第三周总结
    开课博客
    学习进度
    个人作业1-数组
    数组
    第一周考试总结
    团队个人冲刺第六天
    团队个人冲刺第五天
  • 原文地址:https://www.cnblogs.com/RootEvils/p/9791209.html
Copyright © 2011-2022 走看看