Maison >base de données >tutoriel mysql >En savoir plus sur les opérations de base de Mysql
1 Copier la structure de la table Copier la structure de la table bonjour dans la table bonjour3
2. Copier les données
a. toutes les colonnes Données
mysql> insert into hello3 select * from hello;
b. Les résultats des deux tableaux peuvent être différents et il vous suffit de copier les données de certaines colonnes
mysql> insert into hello3 (name,sex,degree) select name,sex,degree from hello;
2. Index
1. créer un index (seuls des index ordinaires et des index uniques peuvent être créés)
Créer un index ordinaire : mysql> in_name on hello(name ); Créez un index nommé in_name pour la colonne name dans la table hello.
Créez un index unique : mysql> create unique index un_name on hello(name); Créez un index unique nommé un_name pour la colonne name dans la table hello.
Afficher l'index : mysql> afficher l'index de bonjour ; Afficher l'index de la table bonjour.
Supprimer l'index : mysql> dépose l'index in_name sur hello ; Supprimez l'index nommé in_name dans la table hello.
2. alter crée un index (une manière courante de créer un index)
Créer un index normal : mysql> index in_name(name); Créez un index nommé in_name pour la colonne name dans la table hello. Supprimer l'index (ordinaire/unique) : mysql> alter table hello drop index in_name ; Supprimez l'index ordinaire nommé in_name dans la table hello.
Supprimer l'incrémentation automatique : mysql> alter table bonjour modifier id int unsigned not null ; supprimer la fonction d'incrémentation automatique de la colonne id (type int) dans la table bonjour.
Supprimez l'index de clé primaire : mysql> alter table hello drop PRIMARY KEY ;
Créez un index unique : mysql> le nom de la table hello est celui par défaut.
Créez un index de clé primaire : mysql> alter table hello add Primary key(id); Créez un index de clé primaire pour le champ id de la table hello.
Définissez l'index de clé primaire sur incrémentation automatique : mysql> alter table hello modifier id int unsigned not null auto_increment ; Définissez la colonne id de clé primaire dans la table hello sur incrémentation automatique.
3. VueLorsque les données de la table principale changent, la vue change en conséquence de temps en temps. Si la table dont dépend la vue contient une erreur (est supprimée), la vue aura également une erreur. Créer une vue : mysql> créer une vue v_hello as select * from hello which id >5;
Supprimer la vue : mysql> 🎜> Visualisez le processus de création de la vue : mysql> show create view v_hello; Visualisez le processus de création de la vue v_hello.
4.Fonctions intégrées
1. CONCAT(str1, str2, ....) Fonction de lien de caractère mysql> select concat('A','B' );
2. LCASE(str1) Convertir en minuscule
mysql> ; select lcase("MYSQL");
3. UCASE(str1) Convertir en majuscule
mysql> select UCASE("Mysql");
4. LENGTH(str ) La longueur de str
mysql> select length('mysql');
6. RTRIM(str) supprime les espaces back-end
mysql> select RTRIM(' mysql ');
7. REPEAT(str,count) répéter le nombre de fois Mysql> select REPLACE('mysql','m','M');
9 . SUBSTRING(str,postion,length) Prendre les caractères de longueur à partir de la position de str
mysql> select substring('mysql',1,2); (count) génère un nombre d'espaces
mysql> select concat(space(3),'mysql') ;
Fonctions mathématiques 1. BIN (nombre décimal) : Convertir le nombre décimal en binaire 2. CEILING(nombre) arrondir mysql> select plafond(10.12) ;3、FLOOR(number) 向下取整 mysql> select ceiling(10.12); 结果:10
4、MAX(column) 获取 最大列
5、MIN(column) 获取最小列
6、SQRT(num) 开平方
7、RAND() 返回0-1之间的随机数值
日期函数
1、CURDATE() 返回当前日期格式 yyyy-MM-dd
2、CURTIME()返回档期时间 12:11:56
3、NOW()返回当前时间 2017-05-12 21:12:34
4、UNIX_TIMESTAMP(date) 返回当前date的时间戳
5、FROM_UNIXTIME()返回UNIX时间戳的日期值
6、WEEK(date)返回当前时间date为一年中的第几周
7、YEAR(data)返回当前时间date的年份
8、DATEDIFF(expr1,expr2) 返回expr1与expr2之间的天数
无变量:
创建预处理语句:mysql> prepare stmt1 from 'select * from hello where id>5';创建一个名为stmt1的预处理语句
执行预处理语句:mysql> execute stmt1;执行stmt1预处理语句
带变量:
创建带参数的预处理语句:mysql> prepare stmt1 from 'select * from hello where id>?'
设置变量:mysql> set @i=6;
执行预处理语句:mysql> execute stmt2 using @i;
删除预处理语句:mysql> drop prepare stmt2; #mysql> DEALLOCATE PREPARE stmt2;
注意:每一次执行完EXECUTE时,养成好习惯,须执行DEALLOCATE PREPARE … 语句,这样可以释放执行中使用的所有数据库资源(如游标)。
不仅如此,如果一个session的预处理语句过多,可能会达到max_prepared_stmt_count的上限值。
mysql默认事务是自动提交的。在做mysql事务处理时请将数据库或者表的ENGINE 设置为InnoDB
将表的存储引擎设置为INNODB:mysql> alter table hello engine=innodb;
设置mysql为非自动提交:mysql> set autocommit=0;
产生事务:mysql> delete from hello where id>7;
事务回滚:mysql> rollback;
事务提交:mysql> commit;
关于事务中的还原点:
创建一个事务:mysql> insert into hello (sex,degree,name) values(1,12312.32,'HHH');
对该事务设置还原点:mysql> savepoint p1;
回滚到指定的还原点:mysql> rollback to p1; 此时事务恢复到p1,也就是p1之后的事务p2 ,p3..这些还原点将失效。
回滚到原始的还原点:mysql> rollback;
<!-- 创建存储过程 hello1()--> CREATE PROCEDURE hello1() BEGIN SET @i=0; WHILE @i<100 DO insert INTO hello (sex,degree,name) VALUES(1,@i,CONCAT('name',@i)); SET @i=@i+1; END WHILE; end; <!-- 查看存储--> SHOW PROCEDURE STATUS; <!-- 查看hello1()存储过程--> show CREATE PROCEDURE hello1; <!-- 执行存储过程--> CALL hello1;
mysql中我们的主键id如果设置为主键自增策略,那我们如何清空表,并且恢复自增列id的值。
方式一:使用truncate table tableName; 该方式在清空表的同时恢复auto_increment 的值。
方式二:
1、mysql> delete from hello3; 清空表 (该方式效率较低)
2、mysql> alter table hello3 auto_increment=1; 恢复auto_increment 的起始值为1
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!