1. 테이블 구조 복사 hello3 테이블에 테이블 구조를 복사합니다
2. 데이터 복사
a. 두 테이블의 구조가 동일하여 복사하려는 경우 모든 열 데이터
mysql> insert into hello3 select * from hello;
b. 두 테이블의 결과가 다를 수 있으므로 일부 열의 데이터만 복사하면 됩니다.
mysql> insert into hello3 (name,sex,degree) select name,sex,degree from hello;
2. 색인
1. create 인덱스를 생성합니다(일반 인덱스와 고유 인덱스만 생성 가능)
일반 인덱스 생성: mysql> hello(name); 테이블에 hello의 name 열은 in_name이라는 인덱스를 생성합니다.
고유 인덱스 생성: mysql> hello(name)에 고유 인덱스 un_name을 생성합니다. hello 테이블의 name 열에 대해 un_name이라는 고유 인덱스를 생성합니다.
인덱스 보기: mysql> hello 테이블의 인덱스 보기;
인덱스 삭제: mysql> hello 테이블에서 in_name 인덱스 삭제;
2. alter는 인덱스를 생성합니다(인덱스를 생성하는 일반적인 방법)
일반 인덱스 생성: mysql> alter table hello add index in_name(name); hello 테이블의 name 열에 대해 in_name이라는 인덱스를 만듭니다.
(일반/고유) 인덱스 삭제: mysql> alter table hello drop index in_name; hello 테이블에서 in_name이라는 일반 인덱스를 삭제합니다.
자동 증가 삭제: mysql> alter table hello 수정 id int unsigned not null; 테이블 hello의 id 열(int 유형)의 자동 증가 기능을 삭제합니다.
기본 키 인덱스 삭제: mysql> alter table hello drop PRIMARY KEY
고유 인덱스 생성: mysql> alter table hello add Unique(name); hello 테이블의 이름이 기본값입니다.
기본 키 인덱스 생성: mysql> alter table hello add 기본 키(id); hello 테이블의 id 필드에 대한 기본 키 인덱스를 생성합니다.
기본 키 인덱스를 자동 증가로 설정: mysql> alter table hello 수정 id int unsigned not null auto_increment; hello 테이블의 기본 키 id 열을 자동 증가로 설정합니다.
메인 테이블 데이터가 변경되면 그에 따라 뷰도 수시로 변경됩니다. 뷰가 의존하는 테이블에 오류가 있는 경우(삭제된 경우) 뷰에도 오류가 있습니다.
뷰 생성: mysql> create view v_hello 선택 * from hello where id >5;
뷰 삭제: mysql> drop view v_hello;
뷰 생성 과정 보기: mysql> show create view v_hello; 뷰 생성 과정을 봅니다.
문자 함수
1. CONCAT(str1, str2, ....) 문자 연결 함수
mysql> select concat('A','B' )
2. LCASE(str1) 소문자로 변환
mysql> ; select lcase("MYSQL");
3. UCASE(str1) 대문자로 변환
mysql> select UCASE("Mysql");
4. LENGTH(str ) str의 길이
mysql> select length('mysql') ;
6. RTRIM(str) 백엔드 공백 제거
mysql> select RTRIM(' mysql ');
7. REPEAT(str,count) 횟수 반복 Mysql> select REPLACE('mysql','m','M');
9 .SUBSTRING(str,postion,length) str
mysql> 1부터 시작하는 길이의 문자를 취합니다.
10. SPACE (count)는 카운트 공백을 생성합니다
mysql> select concat(space(3),'mysql') ;
수학 함수 1. BIN(10진수): 10진수를 2진수로 변환 2. CEILING(숫자) 반올림 mysql> 선택 천장(10.12) 결과: 113、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 … 语句,这样可以释放执行中使用的所有数据库资源(如游标)。 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; mysql中我们的主键id如果设置为主键自增策略,那我们如何清空表,并且恢复自增列id的值。 方式一:使用truncate table tableName; 该方式在清空表的同时恢复auto_increment 的值。 方式二: 1、mysql> delete from hello3; 清空表 (该方式效率较低) 2、mysql> alter table hello3 auto_increment=1; 恢复auto_increment 的起始值为1 위 내용은 MySQL의 기본 작업에 대해 자세히 알아보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!五、预处理语句
不仅如此,如果一个session的预处理语句过多,可能会达到max_prepared_stmt_count的上限值。六、事务处理
七、存储过程
<!-- 创建存储过程 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;
八、重排auto_increment值