zoukankan      html  css  js  c++  java
  • mysql第一篇

    charset modify charset  engine
    字符集  修改  字符集    引擎
    #1 操作文件夹(库)
        代码如下:
        SHOW CREATE DATABASE db_name;
    
    	增
    		create database db1 charset utf8;
    
    	查
    		show databases;
    		show create database db1;
    	改
    		alter database db1 charset gbk;
    	删
    		drop database db1;
    
    #2 操作文件(表)
        查看表编码:
        SHOW CREATE TABLE tbl_name;
    	切换到文件夹下:use db1
    
    	增(相当于创建)
    		create table t1(id int,name char(10))engine=innodb;
    		create table t2(id int,name char(10))engine(引擎)=innodb default(默认) charset(字符集) utf8;
    		指定这个表的id,name是什么类型,指定引擎,以及字符集
    	查
    		show tables;
    		show create table t1; 查看表的基本信息
    
    		desc t1;#查看表结构
    	改 (相当于添加)
    		alter table t1 add age int;    添加AGE字段为整形
    		alter table t1 modify name char(12);
    
    	删
    		drop table t1;
    
    #3 操作文件的一行行内容(记录)
        查看字段编码:
        代码如下:
        SHOW FULL COLUMNS FROM tbl_name
    	增 插入数据
    		insert into db1.t1 values(1,'egon1'),(2,'egon2'),(3,'egon3');
    		insert into db1.t1(name) values('egon1'),('egon2'),('egon3');
    	查
    		select * from t1;
    		select name from t1;
    		select name,id from t1;
    	改(更新)
    		update t1 set name='SB' where id=4;
    		update t1 set name='SB' where name='alex';
    	删
    		delete from t1 where id=4;
    
    
    		#对于清空表记录有两种方式,但是推荐后者
    		delete from t1;
    		truncate t1; #当数据量比较大的情况下,使用这种方式,删除速度快
    
    
    
    	#自增id
    	create table t5(id int primary(主键) key auto_increment,name char(10));
    	create table t4(id int not null unique,name char(10));
    
    insert into t5(name) values
    ('egon5'),
    ('egon6'),
    ('egon7'),
    ('egon8'),
    ('egon9'),
    ('egon10'),
    ('egon11'),
    ('egon12'),
    ('egon13');
    
    #拷贝表结构
    create table t7 select * from t5 where 1=2;
    alter table t7 modify id int primary key auto_increment;   有问题
    
    insert into t7(name) values
    ('egon1'),
    ('egon2'),
    ('egon3'),
    ('egon4'),
    ('egon5'),
    ('egon6'),
    ('egon7'),
    ('egon8'),
    ('egon9'),
    ('egon10'),
    ('egon11'),
    ('egon12'),
    ('egon13');
    
    
    delete from t7 where  id=1; #删记录
    update t7 set name=''; #修改字段对应的值  (这是修改name这个字段的所有列)
    #创建用户
    create user 'lin'@'localhost' identified by '123';
    
    #insert,delele,update,select
    #级别1:对所有库,下的所有表,下的所有字段
    grant select on *.* to 'lin1'@'localhost' identified by '123';(第一个*代表所有库,第二个*代表所有表)
    
    #级别2:对db1库,下的所有表,下的所有字段(@前是账号,@后是密码)
    grant select on db1.* to 'lin2'@'localhost' identified by '123';
    
    #级别3:对表db1.t1,下的所有字段
    grant select on db1.t1 to 'lin3'@'localhost' identified by '123';
    
    #级别4:对表db1.t1,下的id,name字段
    grant select (id,name) on db1.t1 to 'lin4'@'localhost' identified by '123';
    grant select (id,name),update (name) on db1.t1 to 'lin5'@'localhost' identified by '123';
    
    #修改完权限后,要记得刷新权限
    flush privileges;
    

      

    mysql现在已提供什么存储引擎:
    mysql> show engines;
    看你的mysql当前默认的存储引擎:
    mysql> show variables like '%storage_engine%';
    1.Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。每个MyISAM在磁盘上存储成三个文件。文件名都和表名相同,扩展名分别是.frm(存储表定义)、.MYD(MYData,存储数据)、.MYI(MYIndex,存储索引)。数据文件和索引文件可以放置在不同的目录,平均分布io,获得更快的速度。
    2.InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
    修改mysql的默认存储引擎

    1、查看mysql存储引擎命令,
    在mysql>提示符下搞入show engines;
    字段 Support为:Default表示默认存储引擎
    www.2cto.com
    2、设置InnoDB为默认引擎:
    在配置文件my.cnf中的 [mysqld] 下面加入
    default-storage-engine=INNODB 一句

    3、重启mysql服务器:
    mysqladmin -u root -p shutdown
    或者service mysqld restart 登录mysql数据库


    MySQL查看和修改表的存储引擎
    1 查看系统支持的存储引擎
    show engines;
    2 查看表使用的存储引擎
    两种方法:
    a、show table status from db_name where name='table_name';
    b、show create table table_name;
    如果显示的格式不好看,可以用g代替行尾分号
    有人说用第二种方法不准确,我试了下,关闭掉原先默认的Innodb引擎后根本无法执行show create table table_name指令,因为之前建的是Innodb表,关掉后默认用MyISAM引擎,导致Innodb表数据无法被正确读取。
    3 修改表引擎方法
    alter table table_name engine=innodb;
    4 关闭Innodb引擎方法
    关闭mysql服务: net stop mysql
    找到mysql安装目录下的my.ini文件:
    找到default-storage-engine=INNODB 改为default-storage-engine=MYISAM
    找到#skip-innodb 改为skip-innodb
    启动mysql服务:net start mysql


    查看数据库编码:
    代码如下:
    SHOW CREATE DATABASE db_name;

    查看表编码:
    SHOW CREATE TABLE tbl_name;

    查看字段编码:
    代码如下:
    SHOW FULL COLUMNS FROM tbl_name

    charset字符集
  • 相关阅读:
    Auto X2021 K Increasing Sequence
    拉普拉斯平滑处理 Laplace Smoothing
    博学之
    Python-生成音乐-pyshnth
    Python-Kivy ImportError: DLL load failed: 找不到指定的模块
    Python-Word模板填充-docxtpl
    Python-文字转语音-pyttsx3
    Virtual Box中Ubuntu使用"桥接网卡"不能联网而使用"网络地址转换(NAT)"却可以上网
    STM32的HAL库中的DMA_FLAG_TCIF3_7等几个宏定义的含义
    Linux下编写互相通信的驱动模块并将其加入到内核中
  • 原文地址:https://www.cnblogs.com/huangxu/p/7482154.html
Copyright © 2011-2022 走看看